Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Section
bordertrue
Column
width50

Table of Contents

Table of Contents
stylesquare

...

Code Block
languagexml
titleview1.xhtml
<h:form prependId="false" id="searchPatient">
            	<h3>#{msg['ui.searchmask.info']}</h3>
            <c:choose>
 	<h:panelGrid columns="2" >
              	<c:whenforEach testitems="#{myBean.selectedCountry eq 'PT'}identifiers}" var="identifier" varStatus="idLoop">
                    <ui:include src="/forms/PT.xhtml	<h:outputLabel value="#{identifier.key}"/>
                </c<p:when>
                <c:when testinputText id="#{not empty identifier.friendlyName ? identifier.friendlyName : ''.concat('uservalue-').concat(idLoop.index)}" value="#{myBean.selectedCountry eq 'IT'identifier.userValue}">
                    <ui:include src="/forms/IT.xhtml required="true"/>
  
             </c:when>    
  forEach>
             <c:whenforEach testitems="#{myBean.selectedCountry eq 'AT'}demographics}" var="demographic" varStatus="demographicsLoop">
                    <ui:include src="/forms/AT.xhtml	<h:outputLabel value="#{demographic.label}:" rendered="#{myBean.showDemographics}"/>
                </c<c:when>choose>
                    <c:otherwise>	<c:when test="#{demographic.type=='text'}">
                    <h	<p:panelGridinputText columnsid="2" >
                        <ui:repeat value="#{myBean.identifiers}" var="identifier">
                            <h:outputLabel value="#{identifier.key}" />
                            <p:inputText id="uservalue" value="#{identifier.userValue}" required="true" />
                        </ui:repeat>
                    </h:panelGrid>
                    <h:panelGrid columns="2" id="aa">
                        <ui:repeat value="#{myBean.demographics}" var="demographic">
                            <h:outputLabel value="#{demographic.label}" rendered="#{myBean.showDemographics}"/>
                            <p:inputText id="userValue2" value="#{demographic.userValue}" 
                                         required="#{demographic.mandatory}" rendered="#{demographic.type=='text'}" />
                            <p:calendar value="#{demographic.userDateValue}" id="userDateValue2" 
                                        rendered="#{demographic.type=='calendar'}" yearRange="c-100:c+0" pattern="yyyyMMdd" 
                                        navigator="true" >
                                <f:convertDateTime pattern="yyyyMMdd"/>  
                            </p:calendar>            
                        </ui:repeat>
                    </h:panelGrid>
                </c:otherwise>
            </c:choose>
...

For the specific cases of Portugal, Italy and Austria (countries currently supporting eID for their patients), there are specific XHTML pages that will be displayed, e.g. for Austria:

Code Block
languagexml
titleCustom XHTML page for Austria's search mask
<ui:composition>
        <h:panelGrid columns="2">
            <h:outputLabel value="#{myBean.identifiers[0].key}" />#{not empty demographic.friendlyName ? demographic.friendlyName : ''.concat('userValue2-').concat(demographicsLoop.index)}" 
            <p:inputText id="#{myBean.identifiers[0].friendlyName}" value="#{myBean.identifiers[0].userValue}" required="true" />             <h:outputLabel value="#{myBean.demographics[0].label}" />demographic.userValue}" required="#{demographic.mandatory}"/>
                  <p:inputText id="#{myBean.demographics[0].friendlyName}" value="#{myBean.demographics[0].userValue}" required="true" />  </c:when>
                    <h<c:outputLabelwhen valuetest="#{myBean.demographics[1].label}" />demographic.type=='calendar'}">
                    	<p:inputTextcalendar id="#{myBean.demographics[1].friendlyName}" value="#{myBean.demographics[1].userValue}" required="true" />not empty demographic.friendlyName ? demographic.friendlyName : ''.concat('userDateValue2-').concat(demographicsLoop.index)}" 
                        	 <h:outputLabel value="#{myBean.demographics[2].label}" /demographic.userDateValue}" yearRange="c-100:c+0" pattern="yyyyMMdd" navigator="true" >
            <p:calendar value="#{myBean.demographics[2].userDateValue}"                <f:convertDateTime pattern="yyyyMMdd"/>
                 rendered="#{myBean.demographics[2].type eq 'calendar'}" yearRange="c-100:c+0" pattern="yyyyMMdd"   </p:calendar>
                      navigator="true"></c:when>
                 <f</c:convertDateTime pattern="yyyyMMdd"/>choose>
             </pc:calendar>forEach>
         </h:panelGrid>
 
          <a id="sc_link" target="_blank" href="/jnlp/openecard.jnlp">#{msg['patient.search.downloadeid']}</a>
    </ui:composition>...

The main difference to the other countries, apart from the link to download the eID component, with countries supporting eID for their citizens is that the the id attribute of the input fields is assigned the value of the friendlyName attribute in the XML of the search mask (explanation of how the previous snippet of code works can be found here).

After displaying the page, a Javascript polling mechanism starts (code at the end of view1.xhtml). Each 10 seconds, it tries to reach the Java WS application by calling a REST web service that returns the freely accessible data from the smartcard. The eID component exposes its web services under the hostname www.localhost-ecard-client.de, port 24727. For instance, the LARMS service is exposed under /larms/getAttributes:

...

Widget Connector
urlhttps://www.youtube.com/watch?v=O1fy_PDbGaA

This second video shows the typical PS workflow using LARMS in the Austrian Portal:

Multimedia
nameeCard-test.mp4

4.3. PS workflow with eID level 3 (LAM+)

...

  • (not discussed in TelCo, added for clarity by soeren) the eHealth eID components are comprised of a core, the OASIS DSS signature addon, and the AuthN addons LARMS and LAM. 
    • The DSS service is based on SD-DSS and has been extended to support more signatures and signature placements. Fully available as source code.
    • LARMS and LAM are fully available as source code. 
  • It is, however, currently inadvisable to publish the source code of the eID core alongside with the OpenNCP as the unchanged binary version carries a certification towards BSI TR-03124. Unintended or uncovered changes may invalidate the certification. There is a need for strict governance on this matter. The source code is naturally available through e-SENS WP 5.2.1.

 

Soeren Bittins clarification about this topic:

The most current version is always available here: http://jnlp.fokus.fraunhofer.de/ Source code as well as annotated test versions are available here: https://owncloud.fokus.fraunhofer.de/index.php/s/AjBPdStQh7tqvPv We have requested an e-SENS home for this to untangle the dependency on FhG services (we sometimes need to take servers or docker containers offline for maintenance). Using the OpenNCP facilities is a good temporary measure but as discussed in Lisbon, the e-SENS MB is not entirely sure about the stakeholder status of the OpenNCP. 

Code management is currently indeed an issue:

...