eHealthSuisse PPQ Repository MockUp simulates a PPQ Repository actor.
PPQ transactions are used by the policy source to add, update or delete policies stored in a policy repository
and used policy consumer to retrieve policies in the repository.
to do that, PPQ is build around of four different requests :
XACMLPolicyQuery, AddPolicyRequest, UpdatePolicyRequest and DeletePolicyRequest
XACMLPolicyQuery :
The Policy Consumer sends this message when it needs to retrieve existing XACML policies
or policy sets of a patient stored byin a Policy Repository (of the patient?s referenceCommunity).
AddPolicyRequest and UpdatePolicyRequest :
The Policy Source sends these messages when it needs to add new or update existing
policies and/or policy sets stored within the Policy Repository (of a patient?s referenceCommunity).
DeletePolicyRequest :
The Policy Source sends these messages when it needs to delete existing patient-specific
policy sets stored within the Policy Repository (of a patient?s referenceCommunity).
Subject-id | Subject-id-qualifier | IdP Simulator username |
---|---|---|
7601002469191 | urn:gs1:gln | aandrews |
7601000050717 | urn:gs1:gln | magpar |
7601002033572 | urn:gs1:gln | rspieler |
Id_extension | Id_root | HomeCommunityId | PolicySetID | PolicyID | IdP Simulator username |
---|---|---|---|---|---|
761337610455909127 | 2.16.756.5.30.1.127.3.10.3 | urn:oid:1.3.6.1.4.1.21367.2017.2.6.2 | urn:uuid:53ec6db9-f79a-40ce-a8ab-7e5070210bf1 | urn:e-health-suisse:2015:policies:permit-reading-normal | aamrein |
761337610436974489 | 2.16.756.5.30.1.127.3.10.3 | urn:oid:1.3.6.1.4.1.21367.2017.2.6.2 | urn:uuid:21285e65-14ba-4541-a5af-0313c639c1e3 | urn:e-health-suisse:2015:policies:permit-reading-normal | lavdic |
761337610435209810 | 2.16.756.5.30.1.127.3.10.3 | urn:oid:2.2.2 | x | x | bovie |
It requires TLS mutual authentication with testing certificate (from GSS PKI). The wsdl can be browsed here
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xd="http://www.w3.org/2000/09/xmldsig#"> <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Action>urn:e-health-suisse:2015:policy-administration:PolicyQuery</wsa:Action> <wsa:MessageID>807cf78a-36a0-4403-82d0-11f95d877188</wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo> <wsa:To>http://ehealthsuisse.ihe-europe.net/ppq-repository</wsa:To> <wss:Security xmlns:wss="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <!-- Add an assertion here <saml2:Assertion.... --> </wss:Security> </soap:Header> <soap:Body> <xacml-samlp:XACMLPolicyQuery xmlns:xacml="urn:oasis:names:tc:xacml:2.0:policy:schema:os" xmlns:xacml-samlp="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:protocol" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="cb8e5238-0a9f-4766-9179-b2e765957bbb" Version="2.0" IssueInstant="2019-02-05T14:58:39.274+01:00"> <xacml-context:Request xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os" xmlns:hl7="urn:hl7-org:v3"> <xacml-context:Subject/> <xacml-context:Resource> <xacml-context:Attribute AttributeId="urn:e-health-suisse:2015:epr-spid" DataType="urn:hl7-org:v3#II"> <xacml-context:AttributeValue> <hl7:InstanceIdentifier xsi:type="hl7:II" root="2.16.756.5.30.1.127.3.10.3" extension="761337610455909127"/> </xacml-context:AttributeValue> </xacml-context:Attribute> </xacml-context:Resource> <xacml-context:Action/> <xacml-context:Environment/> </xacml-context:Request> </xacml-samlp:XACMLPolicyQuery> </soap:Body> </soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xd="http://www.w3.org/2000/09/xmldsig#"> <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Action>urn:e-health-suisse:2015:policy-administration:PolicyQuery</wsa:Action> <wsa:MessageID>807cf78a-36a0-4403-82d0-11f95d877188</wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo> <wsa:To>http://ehealthsuisse.ihe-europe.net/ppq-repository</wsa:To> <wss:Security xmlns:wss="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <!-- Add an assertion here <saml2:Assertion.... --> </wss:Security> </soap:Header> <soap:Body> <xacml-samlp:XACMLPolicyQuery ID="cb8e5238-0a9f-4766-9179-b2e765957bbb" Version="2.0" IssueInstant="2019-02-12T14:08:21.963Z" xmlns:xacml="urn:oasis:names:tc:xacml:2.0:policy:schema:os" xmlns:xacml-samlp="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:protocol" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <xacml:PolicySetIdReference>urn:uuid:451fb3f6-7b35-4344-bee1-ddc26018cab3</xacml:PolicySetIdReference> </xacml-samlp:XACMLPolicyQuery> </soap:Body> </soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:xe="http://www.w3.org/2001/04/xmlenc#"> <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Action>urn:e-health-suisse:2015:policy-administration:AddPolicy</wsa:Action> <wsa:MessageID>306de2f9-f272-4eff-bedc-45e8ea825575</wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo> <wsa:To>https://ehealthsuisse.ihe-europe.net/ppq-repository?wsdl</wsa:To> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <!-- Add an assertion here <saml2:Assertion.... --> </wsse:Security> </soap:Header> <soap:Body> <epr:AddPolicyRequest xmlns:hl7="urn:hl7-org:v3" xmlns:xacml="urn:oasis:names:tc:xacml:2.0:policy:schema:os" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:epr="urn:e-health-suisse:2015:policy-administration" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xacml-samlp="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:protocol" xmlns:xacml-saml="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:assertion"> <saml:Assertion Version="2.0" ID="_b882d240-45cd-4fa3-aa9f-65394115d0e0" IssueInstant="2019-03-06T14:28:35.249Z"> <saml:Issuer NameQualifier="urn:e-health-suisse:community-index">urn:oid:1.3.6.1.4.1.21367.2017.2.6.2</saml:Issuer> <saml:Statement xsi:type="xacml-saml:XACMLPolicyStatementType"> <xacml:PolicySet PolicySetId="urn:uuid:451fb3f6-7b35-4344-bee1-ddc26018cab3" PolicyCombiningAlgId="urn:oasis:names:tc:xacml:1.0:policy-combining-algorithm:deny-overrides"> <xacml:Description>Patient specific PolicySet for EPD Setup 201 - granting full access to a patient at EPD setup</xacml:Description> <xacml:Target> <xacml:Subjects> <xacml:Subject> <xacml:SubjectMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> <xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">761337610435209810</xacml:AttributeValue> <xacml:SubjectAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" DataType="http://www.w3.org/2001/XMLSchema#string"/> </xacml:SubjectMatch> <xacml:SubjectMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal"> <xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">urn:e-health-suisse:2015:epr-spid</xacml:AttributeValue> <xacml:SubjectAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id-qualifier" DataType="http://www.w3.org/2001/XMLSchema#string"/> </xacml:SubjectMatch> <xacml:SubjectMatch MatchId="urn:hl7-org:v3:function:CV-equal"> <xacml:AttributeValue DataType="urn:hl7-org:v3#CV"> <hl7:CodedValue code="PAT" codeSystem="2.16.756.5.30.1.127.3.10.6"/> </xacml:AttributeValue> <xacml:SubjectAttributeDesignator DataType="urn:hl7-org:v3#CV" AttributeId="urn:oasis:names:tc:xacml:2.0:subject:role"/> </xacml:SubjectMatch> </xacml:Subject> </xacml:Subjects> <xacml:Resources> <xacml:Resource> <xacml:ResourceMatch MatchId="urn:hl7-org:v3:function:II-equal"> <xacml:AttributeValue DataType="urn:hl7-org:v3#II"> <hl7:InstanceIdentifier root="2.16.756.5.30.1.127.3.10.3" extension="761337610435209810"/> </xacml:AttributeValue> <xacml:ResourceAttributeDesignator DataType="urn:hl7-org:v3#II" AttributeId="urn:e-health-suisse:2015:epr-spid"/> </xacml:ResourceMatch> </xacml:Resource> </xacml:Resources> </xacml:Target> <xacml:PolicySetIdReference>urn:e-health-suisse:2015:policies:access-level:full</xacml:PolicySetIdReference> </xacml:PolicySet> </saml:Statement> </saml:Assertion> </epr:AddPolicyRequest> </soap:Body> </soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:xe="http://www.w3.org/2001/04/xmlenc#"> <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Action>urn:e-health-suisse:2015:policy-administration:UpdatePolicy</wsa:Action> <wsa:MessageID>306de2f9-f272-4eff-bedc-45e8ea825575</wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo> <wsa:To>https://ehealthsuisse.ihe-europe.net/ppq-repository?wsdl</wsa:To> <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <!-- Add an assertion here <saml2:Assertion.... --> </wsse:Security> </soap:Header> <soap:Body> <epr:UpdatePolicyRequest xmlns:hl7="urn:hl7-org:v3" xmlns:xacml="urn:oasis:names:tc:xacml:2.0:policy:schema:os" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:epr="urn:e-health-suisse:2015:policy-administration" xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol" xmlns:xacml-context="urn:oasis:names:tc:xacml:2.0:context:schema:os" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xacml-samlp="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:protocol" xmlns:xacml-saml="urn:oasis:names:tc:xacml:2.0:profile:saml2.0:v2:schema:assertion"> <saml:Assertion Version="2.0" ID="_b882d240-45cd-4fa3-aa9f-65394115d0e0" IssueInstant="2019-03-06T14:28:35.249Z"> <saml:Issuer NameQualifier="urn:e-health-suisse:community-index">urn:oid:1.3.6.1.4.1.21367.2017.2.6.2</saml:Issuer> <saml:Statement xsi:type="xacml-saml:XACMLPolicyStatementType"> <xacml:PolicySet PolicySetId="urn:uuid:451fb3f6-7b35-4344-bee1-ddc26018cab3" PolicyCombiningAlgId="urn:oasis:names:tc:xacml:1.0:policy-combining-algorithm:deny-overrides"> <xacml:Description>Patient specific PolicySet for EPD Setup 201 - granting full access to a patient at EPD setup</xacml:Description> <xacml:Target> <xacml:Subjects> <xacml:Subject> <xacml:SubjectMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:string-equal"> <xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">761337610435209810</xacml:AttributeValue> <xacml:SubjectAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id" DataType="http://www.w3.org/2001/XMLSchema#string"/> </xacml:SubjectMatch> <xacml:SubjectMatch MatchId="urn:oasis:names:tc:xacml:1.0:function:anyURI-equal"> <xacml:AttributeValue DataType="http://www.w3.org/2001/XMLSchema#anyURI">urn:e-health-suisse:2015:epr-spid</xacml:AttributeValue> <xacml:SubjectAttributeDesignator AttributeId="urn:oasis:names:tc:xacml:1.0:subject:subject-id-qualifier" DataType="http://www.w3.org/2001/XMLSchema#string"/> </xacml:SubjectMatch> <xacml:SubjectMatch MatchId="urn:hl7-org:v3:function:CV-equal"> <xacml:AttributeValue DataType="urn:hl7-org:v3#CV"> <hl7:CodedValue code="PAT" codeSystem="2.16.756.5.30.1.127.3.10.6"/> </xacml:AttributeValue> <xacml:SubjectAttributeDesignator DataType="urn:hl7-org:v3#CV" AttributeId="urn:oasis:names:tc:xacml:2.0:subject:role"/> </xacml:SubjectMatch> </xacml:Subject> </xacml:Subjects> <xacml:Resources> <xacml:Resource> <xacml:ResourceMatch MatchId="urn:hl7-org:v3:function:II-equal"> <xacml:AttributeValue DataType="urn:hl7-org:v3#II"> <hl7:InstanceIdentifier root="2.16.756.5.30.1.127.3.10.3" extension="761337610435209810"/> </xacml:AttributeValue> <xacml:ResourceAttributeDesignator DataType="urn:hl7-org:v3#II" AttributeId="urn:e-health-suisse:2015:epr-spid"/> </xacml:ResourceMatch> </xacml:Resource> </xacml:Resources> </xacml:Target> <xacml:PolicySetIdReference>urn:e-health-suisse:2015:policies:access-level:full</xacml:PolicySetIdReference> </xacml:PolicySet> </saml:Statement> </saml:Assertion> </epr:UpdatePolicyRequest> </soap:Body> </soap:Envelope>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xd="http://www.w3.org/2000/09/xmldsig#" xmlns:xe="http://www.w3.org/2001/04/xmlenc#"> <soap:Header xmlns:wsa="http://www.w3.org/2005/08/addressing"> <wsa:Action>urn:e-health-suisse:2015:policy-administration:DeletePolicy</wsa:Action> <wsa:MessageID>9db0ea75-e374-4718-a653-4614cafe4726</wsa:MessageID> <wsa:ReplyTo> <wsa:Address>http://www.w3.org/2005/08/addressing/anonymous</wsa:Address> </wsa:ReplyTo> <wsa:To>http://ehealthsuisse.ihe-europe.net/ppq-repository</wsa:To> <wss:Security xmlns:wss="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"> <!-- Add an assertion here <saml2:Assertion.... --> </wss:Security> </soap:Header> <soap:Body> <epr:DeletePolicyRequest xmlns:epr="urn:e-health-suisse:2015:policy-administration" xmlns:saml="urn:oasis:names:tc:SAML:2.0:assertion" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xacml="urn:oasis:names:tc:xacml:2.0:policy:schema:os" > <saml:Assertion Version="2.0" ID="_9a71a18c-d7a7-4931-9168-150a8fbc5dc2" IssueInstant=""> <saml:Issuer NameQualifier="urn:e-health-suisse:community-index">urn:oid:1.3.6.1.4.1.21367.2017.2.6.2</saml:Issuer> <saml:Statement xsi:type="epr:XACMLPolicySetIdReferenceStatementType"> <xacml:PolicySetIdReference>urn:uuid:53ec6db9-f79a-40ce-a8ab-7e5070210bf1</xacml:PolicySetIdReference> </saml:Statement> </saml:Assertion> </epr:DeletePolicyRequest> </soap:Body> </soap:Envelope>