Presentation is loading. Please wait.

Presentation is loading. Please wait.

FACTORIES Orchestration

Similar presentations


Presentation on theme: "FACTORIES Orchestration"— Presentation transcript:

1 FACTORIES Orchestration
Legal & Organizational Specifications Semantic Technical Testing Operations Implement planned components Plan developments under Project specific branches Stork 2.0 Trillium Bridge … e.SENS Make branches re-converge after validation, integration, testing, into formal main releases Relation with EC DG-CONNECT, DG-SANCO (DG-HELTH), DG-DIGIT

2 OpenNCP OpenNCP

3 open : engaging : evolving : credible
OpenNCP Community open : engaging : evolving : credible

4 OpenNCP Community implementation story OpenNCP

5 ENABLE Healthcare cross border services

6 epSOS - Cross Border Health Services
OpenNCP Community epSOS - Cross Border Health Services Patient Summary (PS) ePrescription / eDispensation (eP/eD) Patient Access (PAC) Health Care Encounter Report (HCER) Medication Related Overview (MRO)

7 epSOS project Original Idea Recognized outcome Actions taken
OpenNCP Community epSOS project Original Idea Limit project results to specifications Leave implementation to PNs Recognized outcome Feasibility of achieving interoperability between PNs was very low PNs commitment with specs was low Actions taken In 2010, it was decided to engage a consortium to develop a reference implementation

8 Reference Implementations
OpenNCP Community Reference Implementations 1st implementation - epSOS induced Based on Proprietary software (Fraunhofer, Elga and Tiani) 2nd implementation – country independent initiative epSOS open common components (SRDC, from Turkey) 3rd implementation (OpenNCP) - epSOS induced Full set of open source components ready to reuse As a bundle or as components With a supporting open community FET was an epSOS induced development for epSOS, while the SRDC development is an independent commercial development primarily for one country, while the OpenNCP is an epSOS induced development for epSOS and beyond. Yes, they can all be considered reference implementation, but there is more to it.

9 OSS Reference Implementation
OpenNCP Community OSS Reference Implementation Open Source Software (OSS) source code made available, providing the rights: to use to study to change to distribute very often developed in a public, collaborative manner

10 OpenNCP Community community OpenNCP

11 OpenNCP Community OpenNCP

12 OpenNCP Community OpenNCP Vision ...design and develop a set of Open Source Components (OpenNCP) that can be adopted by Participating Nation, to build their local implementation of the epSOS NCP.

13 OpenNCP Community NCP Common Component Architecture

14 Motivation and Culture
OpenNCP Community Motivation and Culture Skills and Expertise Willing People Common needs Community

15 OpenNCP Community OpenNCP Community Open group of people orchestrated by an agile software development methodology conducting effort on designing, coding, testing and delivering OpenNCP technology

16 Adopted by 14 of epSOS Countries
OpenNCP Community Since 2012 ~ meetings (tconf or f2f) 200 Software Components 21 Validated by IHE: 3 PAT & 4 PPTs 7 epSOS I & II services available epSOS I/II Adopted by 14 of epSOS Countries

17 Usage and Contribution
OpenNCP Community Usage and Contribution USAGE 14 MS CONTRIB. 3 MS Malta AT, CH, PT, EE, FI, GR, HU, IT,  SP, SE, SI, LU, HR, MT GE, DK, TR 17 – Contributing Countries // 14 USING contries 27 - Contributors (developers, consultants, adopters) 3 - Spanned timezones 24- Source repositories

18 Contributions Nature Quality Assurance: CI Actors and Relations
OpenNCP Community Contributions Nature DEVELOPERS CODE CONTINUOUS INTEGRATION LOCAL DEPLOY / DEVELOP. Quality Assurance: CI Actors and Relations ARTIFACTS ADOPTERS

19 OpenNCP Community Collaborative Design Technology Engineering
OpenNCP Community Collaborative Design Technology Engineering Support & Maintenance Knowledge Sharing open : engaging : evolving : credible

20 OpenNCP Community architecture OpenNCP

21 Part 1: Technical architecture
Part 1: Technical architecture

22 What services are supported?
epSOS 1 Patient Summary (PS) – fetch a summary of person’s vaccinations, allergies, adverse reactions, immunizations, past illnesses, medical devices, medication summary, etc. etc. Electronic Prescription (eP) – fetch electronic prescriptions, dispense them, send dispensation information back to patient’s home country epSOS 2 Healthcare Encounter Report (HCER) – after a healthcare encounter, submit new information to patient’s home country Medication Related Overview (MRO) – fetch history of medication use (subset of a patient summary) Patient Access (PAC) – show Patient Summary data to the patient in a chosen language Something new Trillium Bridge: Support of some use cases, demoed here in Athens. Export translated patient summary from the PAC view. Load a document into the portal and translate it into a chosen language.

23 What IHE profiles are supported?
Communication between NCPs: XCPD Cross-Community Patient Discovery Patient identification XCA Cross-Community Access Fetch a list of available documents Retrieve a certain document XDR Cross-enterprise Document Reliable Interchange Submit a document to the patient’s home country Security and logging: ATNA Audit Trail and Node Authentication Write audit logs about every transaction. A web interface for access to logs is included XUA++ Cross-Enterprise User Assertion, with extensions Send healthcare professional authentication information and treatment relationship confirmation to patient’s home country, along with requests for data Two different assertions, something not commonly supported In documents and server infrastructure other profiles may be also supported (e.g. BPPC, CT). However, for OpenNCP they are “transparent”.

24 OpenNCP: overall architecture
NCP Country B role NCP Country A role XCPD client XCPD server epSOS server APIs Patient search National interfaces or APIs National patient ID infrastructure epSOS client connector Portal B or another client XCA client XCA server PS, eP search National PS infrastructure eD, Consent, HCER submit XDR client XDR server National eP/eD infrastructure National HCP ID infrastructure Patient authentication infastructure (for PAC service) Security manager Security manager Consent manager Audit record repository National consent infrastructure Audit manager Audit manager Audit record repository eADC eADC Transformation modules Transformation modules TM TSAM LTR TM TSAM LTR Configuration and maintenance Configuration and maintenance Terminology sync mgr Config mgr Config mgr Terminology sync mgr epSOS central services Core component Config server TM = transformation manager TSAM = Transformation Service Access Manager LTR = Local Terminology Repository eADC = epSOS Automatic Data Collector Terminology server National component

25 Example: Request a document and send it from A to B
Country B Country A TRC-STS Assertion validator HCP data, patient ID TRC assertion OK or error description Assertion XCA Retrieve request with HCP ID and TRC assertions fetchDoc() fetchDoc() Portal B epSOS XCA protocol terminator (client) epSOS XCA protocol terminator (server) National Connector HCP authenticator Friendly Friendly Pivot Audit log Audit log Pivot Friendly Friendly Pivot Audit log Audit log writer Audit log writer Transformation manager Transformation manager * Some components missing from the figure: eADC, consent manager, config manager Friendly Document in language A or B HCP = Healthcare professional TRC = Treatment Relationship Confirmation STS = Secure Token Service Pivot Document in English

26 OpenNCP: a library or an out-of-the-box product?
Both Offers a ready-to-deploy NCP solution, with clear installation instructions Offers a set of components which can be used separately A blueprint for the use of certain external OSS components

27 Support of IHE profiles
Implementation of IHE profiles is complete for the epSOS use cases For other use cases certain modifications or additions may be required. Clear trade-off: Jack of all trades vs. Master of own profession. OpenNCP is more for the latter. National connectors may affect compatibility, and they often do Attributes in metadata originating from the National Infrastructures are not always IHE-compatible. Responsibility is with epSOS PNs. OpenNCP is quick and adaptive Compatibility is a moving target. Requirements keep changing, and profiles/bindings do change with them. Minor changes may be crucial. IHE validators keep getting updated, and generally do a very good job. Countries which used OpenNCP could easily modify the implementation themselves, and received constant support from the OpenNCP community.

28 What a PN must do, except installing OpenNCP
Develop a national connector (examples supplied) Communication with the national infrastructure Generation of epSOS friendly documents, processing incoming documents Develop a consent management service and a policy manager Implement a consent and policy manager, to replace the default (supplied) one Develop a service for citizens, to give/revoke consents Extend the portal (epsos-web or OpenNCP portal) Develop an HCP authentication module, to replace the default one Patient authentication for the PAC service May involve communication with other national services (e.g. in Finland, the national pharmacy register and the national professional rights register) Setting OpenNCP is perhaps the easiest part An estimate for Finland: 25 % of epSOS work international, 75 % national, despite (or maybe due to) a well-established and stable national infrastructure Easy to do a demo or a small pilot, hard to make a solution to cover a full nation. The same 25/75 % rule is an optimistic guesstimate. All challenges/obstacles are known only after all of them have been cleared.

29 Part 2: Use of OpenNCP in a real pilot
Part 2: Use of OpenNCP in a real pilot

30 Experiences from the use in a real pilot environment
Stable “Shoot and forget” – months of uptime both in PPT and in production Survived changes in the NI without restarts. Survived changes in background database management systems without restarts. Somewhat fragmented SOA has had a clear impact on the architecture. Good for design and stability, but not always easy for setting up the infrastructure. Firewalls are abundant in National eHealth systems. “Have we opened all what is required, but not more?” Secure? OpenNCP itself (+epsos-web) has been security tested successfully National extensions can make a big difference Network infrastructure and maintenance processes can make a big difference Check your national logging requirements

31 What have you learned? OpenNCP is an IHE-compliant software pack
Implements a number of IHE profiles + document transformations Implementations often epSOS-specific, but may be extended/modified (open source!) Can be used for communication between nations, but also for other needs OpenNCP is stable and quick to set up The core is rather compact and easy to study and understand All PNs that use OpenNCP could develop national connectors within reasonable time, with only little support from the OpenNCP community Has been running in production since summer 2013, and in pre-pilot testing since summer 2012 Users need more than only OpenNCP Many components have too much national flavor, out of the scope of OpenNCP Setting up software is straightforward, changing organizational processes, laws or people’s minds much more difficult P.S. With OpenNCP, we succeeded, hope this means something.

32 OpenNCP Community tooling OpenNCP

33 Team Organization INDUSTRY Others TEAM TCONFS
Team Organization Others INDUSTRY TEAM TCONFS AWESOME TECHNICAL DEBATES Epic DEVELOPMENT ITERATIONS STRONG SENSE OF COOPERATION Ultra-fast SUPPORT This is how we able to work as Community! PN RESOURCES Others

34 Methodologies We are Agile! SCRUM BASED DEVELOPMENT KANBAN SUPPORT
Methodologies We are Agile! DEVELOPMENT SCRUM BASED Development iterations organized in SPRINTS Required features represented in BACKLOG items WORK-ITEMS produced after each iteration TODO, IN PROGRESS, QUALITY CONTROL and DONE are the tasks / issue available statuses SUPPORT KANBAN BASED Representation of pending issues in a easy-to-check board perspective; Each issue has a card assigned; Each card navigates across multiple swimlanes, representing the current status; Each card also contain information about how long they are present in the board; Multiple levels of priority are available for each issue; Issue solving is not confined to sprint duration (vs SCRUM); Set in place since the very beginning of OpenNCP!

35 Development and Support Management Continuous Integration
Used Tools Development and Support Management Knowledge Sharing Code Management Continuous Integration Atlassian supports actively OPEN-SOURCE initiatives by providing free-of-charge tools at on-demand platform; All the stored information is OPEN for everyone to access; We are now migrating code repositories from Google Code to Bitbucket; OpenNCP also uses Jenkins for Continuous Integration and delivery;

36 Development Management
Development Management Landing Page Assigned issues Graphical statistics Updates stream JIRA customized landing page with useful information about projects and development progress; The OpenNCP contributor can easily check the assigned issues and the latest updates;

37 Labeling makes easy to understand
Planning Development Development Board I Sprints planning Grouping by epics Labeling makes easy to understand This is how we plan the development work Product owners, scrum masters and developers plan the development sprints, including ahead ones; Grouping by epics makes it easier to focus on goals;

38 Resumed task information
Tracking Development Development Board II Status swimlanes Quick filters Resumed task information ...and how we track the performed work Scrum board, where developers can check their assigned tasks; Configured Quick filters makes it easier to focus on targets; This board handles only one sprint at the time;

39 Indication about issue time
Tracking Support Support Board Status swimlanes Indication about issue time Priority grouping JIRA Kanban view of support incidences; The developers and reporters are able to track the progress of the issues; The issues stay on the board until they are solved;

40 Knowledge Sharing Past events Quick access to relevant topics
Knowledge Sharing Landing Page Past events Quick access to relevant topics Activity Stream Quick access to releases and component specifications Landing page of Knowledge Sharing platform; Tries to concentrate different kinds of pointers to information stored on sub-pages; Entry point for OpenNCP Documentation;

41 Knowledge Sharing Diagrams Code Snippets Usage information
Knowledge Sharing Specification Page Diagrams Code Snippets Usage information Specification pages contain details about the implementation of the components; Provide information on how to integrate and use the components; Keep track of the component versions;

42 Knowledge Sharing Please jump in and explore it! Meeting Minutes
Knowledge Sharing Meeting Minutes Installation Manuals Development Topics Event Pages Please jump in and explore it!

43 Code Management Git repositories Commit history
Code Management Git repositories Commit history First selected code hosting solution was Google Code, as it was free and open; It fulfills all the requirements needed until this moment; Additional requirements in the present pushed the migration to a more capable platform;

44 Code Management Git repositories Commit history Code Reviewing
Code Management Git repositories Commit history Code Reviewing The Bitbucket solution provides all the previous functionality; It also allows code reviewing mechanisms, with pull requests; All the JIRA and Confluence users are also integrated, and other information as well;

45 Coding Culture GIT FLOW Model is used for branching, versioning and development management Semantic Versioning is used as version scheme We always try to document our work, by relating the tasks with the performed work. And that includes additional explanations, if necessary. Maven – main reasons: ease of code distribution, ease of inter-component version management and ease of build, test and release/publication processes. Git - facilitate the distributed and non-sequential nature of development, ensure that all contributions would have equal footing in the repository, the de-centralized and distributed version control system git Semantic Versioning has a well-defined set of rules describing which types of code changes warrants which types of version number changes. Cont. Int server furthermore ensure the publication of development snapshots, such that new developers are always able to work on the newest versions of the code.

46 Continuous Integration w/ execution information
Quality Assurance Continuous Integration Continuous Delivery List of Jobs w/ execution information Code Quality Integration Testing Continuous Delivery

47 Collaborative platform created by the European Commission
Tools Publishing Framework Collaborative platform created by the European Commission Support open source development work done by government agencies in Europe Tool JoinUp Location

48 Other Used Technologies Web-Service Framework
Other Used Technologies Programming Language Web-Service Framework Build Framework Versioning Scheme Maven – main reasons: ease of code distribution, ease of inter-component version management and ease of build, test and release/publication processes. Git - facilitate the distributed and non-sequential nature of development, ensure that all contributions would have equal footing in the repository, the de-centralized and distributed version control system git Semantic Versioning has a well-defined set of rules describing which types of code changes warrants which types of version number changes. Cont. Int server furthermore ensure the publication of development snapshots, such that new developers are always able to work on the newest versions of the code. Licensing Scheme

49 Integration and Testing Arrangements
epSOS Industry Team and OpenNCP Community Workshop Integration and Testing Arrangements

50 Quality Assurance: Unit Tests
Integration and Testing Quality Assurance: Unit Tests Unit Testing is also used in several components in the OpenNCP (e.g. Audit Manager, Transformation Manager); The unit tests coverage is expected to increase, as new developments are performed and the usage of OpenNCP components is more widespread; Test Definitionat Knowledge Base

51 Integration and Testing Continuous Integration Actors and Relations
Integration and Testing Code Repository Pull Source-code Pull/Push Source-code Contribution Local development Environment Continuous Integration Environment Integration Testing Environment Pull dependency binaries Pull dependency binaries Adoption Artifacts Repository Push dependency binaries Continuous Integration Actors and Relations

52 Integration Testing Scheme
Integration and Testing Test Classes Artifact To Test Mocked Information NCP-A Test Client (Simulates NCP-B) NCP-A Mocked National Connector Clients simulate both Portal and NCP-A, with hard-coded messages, according to each test. Mocked information is used to perform the tests. NCP-B Test Client (Simulates Portal) NCP-B All this orchestration is made possible with: NCP-B Artifact is tested using the previously produced NCP-A Artifact. Integration Testing Scheme

53 Integration and Testing
Integration and Testing OpenNCP Integration Testing Assertions HL7v3 IHE Remote Validation Services are used during integration testing, within Jenkins pipelines. Audit Messages Assertions Assertions XD* CDA PDF Remote Validation Service Invocation IHE Validation Services This is the output we see on our CI environment This features can also be used by PNs, on their national environments. Integration Testing: IHE Remote Validation Services

54 OpenNCP Community Lessons Learnt OpenNCP

55 Lessons Learnt The future of the OpenNCP
OpenNCP Community Lessons Learnt The future of the OpenNCP depends on the community sustainability Testing, Validation and Adoption lead to technology maturity assurance PNs MUST acknowledge Willingness and Commitment to participate and autonomy to maintain local services We envision our work as FOUNDATIONAL and may empower future eHealth initiatives


Download ppt "FACTORIES Orchestration"

Similar presentations


Ads by Google