diff --git a/input/ch.fhir.ig.ch-atc.xml b/input/ch.fhir.ig.ch-atc.xml index 7380222..bb64aa4 100644 --- a/input/ch.fhir.ig.ch-atc.xml +++ b/input/ch.fhir.ig.ch-atc.xml @@ -43,12 +43,17 @@ - + + + + + + @@ -212,8 +217,8 @@ - - + + @@ -227,19 +232,39 @@ <generation value="markdown"/> </page> + <page> + <nameUrl value="volume-1.html"/> + <title value="Volume 1 - Integration Profiles"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="volume-2.html"/> + <title value="Volume 2 - Transactions"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="volume-3.html"/> + <title value="Volume 3 - Content Profiles"/> + <generation value="markdown"/> + </page> <page> <nameUrl value="profiles.html"/> <title value="Profiles"/> - <generation value="html"/> + <generation value="markdown"/> </page> <page> <nameUrl value="terminology.html"/> <title value="Terminology"/> - <generation value="html"/> + <generation value="markdown"/> + </page> + <page> + <nameUrl value="searchparameters.html"/> + <title value="Search Parameters"/> + <generation value="markdown"/> </page> <page> <nameUrl value="changelog.html"/> - <title value="Change Log"/> + <title value="Changelog"/> <generation value="markdown"/> </page> </page> diff --git a/input/data/features.yml b/input/data/features.yml index 8ee18d0..2bcda68 100644 --- a/input/data/features.yml +++ b/input/data/features.yml @@ -6,5 +6,5 @@ feedback: # active: true # tagId: G-ED8VLFMEVY css: - navbar: 1F4D85 - title: 1179BF \ No newline at end of file + navbar: 144b8a + title: 4fa2da \ No newline at end of file diff --git a/input/examples/auditevent/atc-doc-create-rep-pat.xml b/input/examples/auditevent/atc-doc-create-rep-pat.xml index 4a40988..3f911ee 100644 --- a/input/examples/auditevent/atc-doc-create-rep-pat.xml +++ b/input/examples/auditevent/atc-doc-create-rep-pat.xml @@ -1,11 +1,11 @@ <AuditEvent xmlns="http://hl7.org/fhir"> - <id value="atc-doc-create-rep-pat"></id> + <id value="atc-doc-create-rep-pat"/> <meta> <profile value="http://fhir.ch/ig/ch-atc/StructureDefinition/DocumentAuditEvent"></profile> </meta> <text> <status value="generated"></status> - <div xmlns="http://www.w3.org/1999/xhtml">Upload of Record artifcat 10.10.2020 18:29 from Julia Helfe-Gern on behalf of Jakob Wieder-Gesund </div> + <div xmlns="http://www.w3.org/1999/xhtml">Upload of Record Artifact 10.10.2020 18:29 from Julia Helfe-Gern on behalf of Jakob Wieder-Gesund </div> </text> <type> <system value="http://dicom.nema.org/resources/ontology/DCM"></system> @@ -52,19 +52,20 @@ <value value="761322222222222222"></value> </identifier> </who> - <name value="Julia Helfe Gern"></name> + <name value="Julia Helfe-Gern"></name> <requestor value="true"></requestor> </agent> <source> <observer> <identifier> <system value="urn:ietf:rfc:3986"></system> + <!-- oid of system generating this audit event --> <value value="urn:oid:7.8.9.10.11"></value> </identifier> </observer> </source> + <!-- Patient --> <entity> - <!-- Patient --> <what> <identifier> <system value="urn:oid:2.16.756.5.30.1.127.3.10.3"></system> @@ -82,8 +83,26 @@ <display value="Patient"></display> </role> </entity> + <!-- Trace context --> + <entity> + <what> + <identifier> + <value value="00-0af7651916cd43dd8448eb211c80319c-b7ad6b7169203331-00"/> + </identifier> + </what> + <type> + <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type"/> + <code value="4"/> + <display value="Other"/> + </type> + <role> + <system value="http://terminology.hl7.org/CodeSystem/object-role"/> + <code value="26"/> + <display value="Processing Element"/> + </role> + </entity> + <!-- Document --> <entity> - <!-- Document --> <what> <identifier> <type> @@ -110,17 +129,17 @@ <detail> <type value="Repository Unique Id"></type> <valueBase64Binary value="MS4yLjM="></valueBase64Binary> - <!-- base64 of OID eg 1.2.3 == --> + <!-- base64 of OID eg 1.2.3 == --> </detail> <detail> <type value="homeCommunityID"></type> <valueBase64Binary value="NS42LjcuOA=="></valueBase64Binary> - <!-- base64 of OID URN homeCommunityId e.g. 5.6.7.8 --> + <!-- base64 of OID URN homeCommunityId e.g. 5.6.7.8 --> </detail> <detail> <type value="EprDocumentTypeCode"></type> <valueBase64Binary value="NDE5ODkxMDA4"></valueBase64Binary> - <!-- base64 typeCode 419891008 --> + <!-- base64 typeCode 419891008 --> </detail> <detail> <type value="title"></type> diff --git a/input/examples/auditevent/atc-doc-read-ass-hpc.xml b/input/examples/auditevent/atc-doc-read-ass-hpc.xml index be5cc8a..675710d 100644 --- a/input/examples/auditevent/atc-doc-read-ass-hpc.xml +++ b/input/examples/auditevent/atc-doc-read-ass-hpc.xml @@ -5,7 +5,7 @@ </meta> <text> <status value="generated"></status> - <div xmlns="http://www.w3.org/1999/xhtml">Document retrieval of record artifact from Regula Fischer 20.10.2020 14:29 on behalf of Dr. med. Hans Allzeitbereit, Member of group Labor 1 Bertaspital, Emergency Access </div> + <div xmlns="http://www.w3.org/1999/xhtml">Document retrieval of record artifact from Regula Fischer 20.10.2020 14:29 on behalf of Dr. med. Hans Allzeitbereit, Member of group Labor 1 Bertaspital, Emergency Access </div> </text> <type> <system value="http://dicom.nema.org/resources/ontology/DCM"></system> @@ -80,9 +80,9 @@ </identifier> </observer> </source> + <!-- Patient --> <entity> <what> - <!-- Patient --> <identifier> <system value="urn:oid:2.16.756.5.30.1.127.3.10.3"></system> <value value="761337610469261945"></value> @@ -99,9 +99,27 @@ <display value="Patient"></display> </role> </entity> + <!-- Trace context --> + <entity> + <what> + <identifier> + <value value="00-abcdef12345678d90abcdef123456789-deadbeefdeadbeef-00"/> + </identifier> + </what> + <type> + <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type"/> + <code value="4"/> + <display value="Other"/> + </type> + <role> + <system value="http://terminology.hl7.org/CodeSystem/object-role"/> + <code value="26"/> + <display value="Processing Element"/> + </role> + </entity> + <!-- Document --> <entity> <what> - <!-- Document --> <identifier> <type> <coding> diff --git a/input/examples/auditevent/atc-doc-search.xml b/input/examples/auditevent/atc-doc-search.xml index c69011c..976cd97 100644 --- a/input/examples/auditevent/atc-doc-search.xml +++ b/input/examples/auditevent/atc-doc-search.xml @@ -63,8 +63,8 @@ </identifier> </observer> </source> + <!-- Patient --> <entity> - <!-- Patient --> <what> <identifier> <system value="urn:oid:2.16.756.5.30.1.127.3.10.3" /> @@ -82,8 +82,26 @@ <display value="Patient"/> </role> </entity> + <!-- Trace context --> + <entity> + <what> + <identifier> + <value value="00-0123456789abcdef0123456789abcdef-abcdef0123456789-00"/> + </identifier> + </what> + <type> + <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type"/> + <code value="4"/> + <display value="Other"/> + </type> + <role> + <system value="http://terminology.hl7.org/CodeSystem/object-role"/> + <code value="26"/> + <display value="Processing Element"/> + </role> + </entity> + <!-- Query --> <entity> - <!-- Query --> <what> <identifier> <system value="urn:ietf:rfc:3986" /> diff --git a/input/examples/auditevent/atc-hpd-group-entry-notify.xml b/input/examples/auditevent/atc-hpd-group-entry-notify.xml index ff82cc8..ee91b6f 100644 --- a/input/examples/auditevent/atc-hpd-group-entry-notify.xml +++ b/input/examples/auditevent/atc-hpd-group-entry-notify.xml @@ -6,7 +6,7 @@ <text> <status value="generated"/> <div xmlns="http://www.w3.org/1999/xhtml"> - 10.10.2020 10:05: Healthcare professional Dr. med. Sabine Musterfrau has been added to Group Kardiologie Universitätsspital Musterstadt and patient Jakob Wieder-Gesund has been notified + 10.10.2020 10:05: Healthcare professional Dr. med. Sabine Musterfrau has been added to Group Kardiologie Universitätsspital Musterstadt and patient Jakob Wieder-Gesund has been notified </div> </text> <type> @@ -34,9 +34,8 @@ </identifier> </observer> </source> - + <!-- Patient --> <entity> - <!-- Patient --> <what> <identifier> <system value="urn:oid:2.16.756.5.30.1.127.3.10.3" /> @@ -54,9 +53,26 @@ <display value="Patient"/> </role> </entity> - + <!-- Trace context --> + <entity> + <what> + <identifier> + <value value="00-9876543210abcdef9876543210abcdef-fedcba9876543210-00"/> + </identifier> + </what> + <type> + <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type"/> + <code value="4"/> + <display value="Other"/> + </type> + <role> + <system value="http://terminology.hl7.org/CodeSystem/object-role"/> + <code value="26"/> + <display value="Processing Element"/> + </role> + </entity> + <!-- Healthcare professional --> <entity> - <!-- Healthcare professional --> <what> <identifier> <system value="urn:oid:2.51.1.3"/> @@ -75,9 +91,8 @@ </role> <name value="Dr. med. Sabine Musterfrau"/> </entity> - + <!-- Group --> <entity> - <!-- Group --> <what> <identifier> <value value="urn:oid:1.1.1.1.1"/> diff --git a/input/examples/auditevent/atc-log-read.xml b/input/examples/auditevent/atc-log-read.xml index e93bb44..2b94f5e 100644 --- a/input/examples/auditevent/atc-log-read.xml +++ b/input/examples/auditevent/atc-log-read.xml @@ -5,7 +5,7 @@ </meta> <text> <status value="generated"></status> - <div xmlns="http://www.w3.org/1999/xhtml">Jakob Wieder-Gesund has viewed the audit trail 22.09.2020 10:47 </div> + <div xmlns="http://www.w3.org/1999/xhtml">Jakob Wieder-Gesund accessed the audit trail 22.09.2020 10:47 </div> </text> <type> <system value="http://dicom.nema.org/resources/ontology/DCM"></system> @@ -40,9 +40,9 @@ </identifier> </observer> </source> + <!-- Patient --> <entity> <what> - <!-- Patient --> <identifier> <system value="urn:oid:2.16.756.5.30.1.127.3.10.3"></system> <value value="761337610469261945"></value> @@ -59,4 +59,22 @@ <display value="Patient"></display> </role> </entity> + <!-- Trace context --> + <entity> + <what> + <identifier> + <value value="00-112233445566778899aabbccddeeff00-0011223344556677-00"/> + </identifier> + </what> + <type> + <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type"/> + <code value="4"/> + <display value="Other"/> + </type> + <role> + <system value="http://terminology.hl7.org/CodeSystem/object-role"/> + <code value="26"/> + <display value="Processing Element"/> + </role> + </entity> </AuditEvent> \ No newline at end of file diff --git a/input/examples/auditevent/atc-pol-create-acc-right.xml b/input/examples/auditevent/atc-pol-create-acc-right.xml index ad784d8..e325513 100644 --- a/input/examples/auditevent/atc-pol-create-acc-right.xml +++ b/input/examples/auditevent/atc-pol-create-acc-right.xml @@ -5,7 +5,7 @@ </meta> <text> <status value="generated"></status> - <div xmlns="http://www.w3.org/1999/xhtml">22.09.2020 09:47: Jakob Wieder-Gesund created Access Level delegation-and-restricted till 31.12.2020 08:00 to Dr. med. Hans Allzeitbereit </div> + <div xmlns="http://www.w3.org/1999/xhtml">22.09.2020 09:47: Jakob Wieder-Gesund assigned Access Level delegation-and-restricted till 31.12.2020 08:00 to Dr. med. Hans Allzeitbereit </div> </text> <type> <system value="http://dicom.nema.org/resources/ontology/DCM"></system> @@ -40,6 +40,7 @@ </identifier> </observer> </source> + <!-- Patient --> <entity> <what> <identifier> @@ -58,8 +59,26 @@ <display value="Patient"></display> </role> </entity> + <!-- Trace context --> + <entity> + <what> + <identifier> + <value value="00-abcdef0123456789adbcdef012345678-abcdabcdabcdabcd-00"/> + </identifier> + </what> + <type> + <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type"/> + <code value="4"/> + <display value="Other"/> + </type> + <role> + <system value="http://terminology.hl7.org/CodeSystem/object-role"/> + <code value="26"/> + <display value="Processing Element"/> + </role> + </entity> + <!-- Resource --> <entity> - <!-- Resource --> <what> <identifier> <system value="urn:oid:2.51.1.3"></system> diff --git a/input/examples/auditevent/atc-pol-create-rep.xml b/input/examples/auditevent/atc-pol-create-rep.xml index 5b89cec..2dc1f52 100644 --- a/input/examples/auditevent/atc-pol-create-rep.xml +++ b/input/examples/auditevent/atc-pol-create-rep.xml @@ -5,7 +5,7 @@ </meta> <text> <status value="generated"></status> - <div xmlns="http://www.w3.org/1999/xhtml">22.09.2020 09:48: Jakob Wieder-Gesund authorized Julia Helfe Gern as a representative </div> + <div xmlns="http://www.w3.org/1999/xhtml">22.09.2020 09:48: Jakob Wieder-Gesund authorized Julia Helfe-Gern as a representative </div> </text> <type> <system value="http://dicom.nema.org/resources/ontology/DCM"></system> @@ -35,14 +35,14 @@ <observer> <identifier> <system value="urn:ietf:rfc:3986"></system> - <!-- oid of system generating this audit event --> + <!-- oid of system generating this audit event --> <value value="urn:oid:7.8.9.10.12"></value> </identifier> </observer> </source> + <!-- Patient --> <entity> <what> - <!-- Patient --> <identifier> <system value="urn:oid:2.16.756.5.30.1.127.3.10.3"></system> <value value="761337610469261945"></value> @@ -59,8 +59,26 @@ <display value="Patient"></display> </role> </entity> + <!-- Trace context --> + <entity> + <what> + <identifier> + <value value="00-abcdef012345d6789abcdef012345678-abcdabcdabcdabcd-00"/> + </identifier> + </what> + <type> + <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type"/> + <code value="4"/> + <display value="Other"/> + </type> + <role> + <system value="http://terminology.hl7.org/CodeSystem/object-role"/> + <code value="26"/> + <display value="Processing Element"/> + </role> + </entity> + <!-- Resource --> <entity> - <!-- Resource --> <type> <system value="http://terminology.hl7.org/CodeSystem/audit-entity-type"></system> <code value="2"></code> @@ -71,6 +89,6 @@ <code value="REP"></code> <display value="Representative"></display> </role> - <name value="Julia Helfe Gern"></name> + <name value="Julia Helfe-Gern"></name> </entity> </AuditEvent> \ No newline at end of file diff --git a/input/examples/bundle/ch-atc-iti-81-response-sample.xml b/input/examples/bundle/ch-atc-iti-81-response-sample.xml index 70b9e25..8ebd8c5 100644 --- a/input/examples/bundle/ch-atc-iti-81-response-sample.xml +++ b/input/examples/bundle/ch-atc-iti-81-response-sample.xml @@ -24,7 +24,7 @@ </meta> <text> <status value="generated"/> - <div xmlns="http://www.w3.org/1999/xhtml">Upload of Record artifact 10.10.2020 18:29 from Julia Helfe-Gern on behalf of Jakob Wieder-Gesund + <div xmlns="http://www.w3.org/1999/xhtml">Upload of Record artifact 10.10.2020 18:29 from Julia Helfe-Gern on behalf of Jakob Wieder-Gesund </div> </text> <type> @@ -72,7 +72,7 @@ <value value="761322222222222222"/> </identifier> </who> - <name value="Julia Helfe Gern"/> + <name value="Julia Helfe-Gern"/> <requestor value="true"/> </agent> <source> @@ -167,7 +167,7 @@ </meta> <text> <status value="generated"/> - <div xmlns="http://www.w3.org/1999/xhtml">Jakob Wieder-Gesund has viewed the audit trail 22.09.2020 10:47 + <div xmlns="http://www.w3.org/1999/xhtml">Jakob Wieder-Gesund accessed the audit trail 22.09.2020 10:47 </div> </text> <type> @@ -241,7 +241,7 @@ </meta> <text> <status value="generated"/> - <div xmlns="http://www.w3.org/1999/xhtml">22.09.2020 09:47: Jakob Wieder-Gesund created Access Level delegation-and-restricted till 31.12.2020 08:00 to Dr. med. Hans Allzeitbereit + <div xmlns="http://www.w3.org/1999/xhtml">22.09.2020 09:47: Jakob Wieder-Gesund assigned Access Level delegation-and-restricted till 31.12.2020 08:00 to Dr. med. Hans Allzeitbereit </div> </text> <type> @@ -339,7 +339,7 @@ <severity value="warning"/> <code value="incomplete"/> <details> - <extension url="http://hl7.org/fhir/StructureDefinition/artifact-identifier"> + <extension url="http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/ch-mhd-home-community-id"> <valueIdentifier> <type> <coding> @@ -350,7 +350,7 @@ <value value="urn:oid:1.2.334483.3.337395864.7"/> </valueIdentifier> </extension> - <text value="The community ABC did not respond"/> + <text value="The community ABC did not respond"/> </details> </issue> </OperationOutcome> diff --git a/input/ignoreWarnings.txt b/input/ignoreWarnings.txt index 3dc9708..7099be2 100644 --- a/input/ignoreWarnings.txt +++ b/input/ignoreWarnings.txt @@ -2,4 +2,12 @@ # Represents the XDSDocumentEntry.uniqueId A definition for CodeSystem 'urn:oasis:names:tc:ebxml-regrep:ObjectType:RegistryObject:ExternalIdentifier' could not be found, so the code cannot be validated -A definition for CodeSystem 'urn:ihe:iti:xca:2010' could not be found, so the code cannot be validated + +# Build errors +The link '#_ftnref5.1' for "[5.1]" cannot be resolved (valid targets: 41 targets) +The link '#_ftnref5.2' for "[5.2]" cannot be resolved (valid targets: 41 targets) +The link '#_ftnref5.3' for "[5.3]" cannot be resolved (valid targets: 41 targets) +The link 'StructureDefinition-DocumentAuditEvent-mappings.html#mappings-for-ch-atc-https-www-bag-admin-ch-bag-en-home-html' for "Mapping for Document Audit Event Profile" cannot be resolved (valid targets: [publish-box, w3c.prov, segment-post-footer, mappings-for-fivews-pattern-mapping-http-hl7-orgfhirfivews, mappings-for-ch-atc-https-www-bag-admin-chbagenhome-html, top, root, ch-atc, rim, stripe, resource-profile-documentauditevent-mappings, mappings-for-workflow-pattern-http-hl7-orgfhirworkflow, segment-footer, logo, segment-content, w5, segment-header, workflow, e-health-suisse-logo, bottom, mappings-for-fhir-provenance-mapping-http-hl7-orgfhirprovenance, dicom, family-nav, ig-status, fhirprovenance, hl7-nav, mappings-for-dicom-tag-mapping-http-nema-orgdicom, segment-navbar, segment-breadcrumb, mappings-for-w3c-prov-http-www-w3-orgnsprov, mappings-for-rim-mapping-http-hl7-orgv3]) +The link 'StructureDefinition-PolicyAuditEvent-mappings.html#mappings-for-ch-atc-https-www-bag-admin-ch-bag-en-home-html' for "Mapping for Policy Audit Event Profile" cannot be resolved (valid targets: [publish-box, w3c.prov, segment-post-footer, mappings-for-fivews-pattern-mapping-http-hl7-orgfhirfivews, mappings-for-ch-atc-https-www-bag-admin-chbagenhome-html, top, root, ch-atc, rim, stripe, mappings-for-workflow-pattern-http-hl7-orgfhirworkflow, segment-footer, logo, segment-content, w5, resource-profile-policyauditevent-mappings, segment-header, workflow, e-health-suisse-logo, bottom, mappings-for-fhir-provenance-mapping-http-hl7-orgfhirprovenance, dicom, family-nav, ig-status, fhirprovenance, hl7-nav, mappings-for-dicom-tag-mapping-http-nema-orgdicom, segment-navbar, segment-breadcrumb, mappings-for-w3c-prov-http-www-w3-orgnsprov, mappings-for-rim-mapping-http-hl7-orgv3]) +The link 'StructureDefinition-AccessAuditTrailEvent-mappings.html#mappings-for-ch-atc-https-www-bag-admin-ch-bag-en-home-html' for "Mapping for Access Audit Trail Event Profile" cannot be resolved (valid targets: [resource-profile-accessaudittrailevent-mappings, publish-box, w3c.prov, segment-post-footer, mappings-for-fivews-pattern-mapping-http-hl7-orgfhirfivews, mappings-for-ch-atc-https-www-bag-admin-chbagenhome-html, top, root, ch-atc, rim, stripe, mappings-for-workflow-pattern-http-hl7-orgfhirworkflow, segment-footer, logo, segment-content, w5, segment-header, workflow, e-health-suisse-logo, bottom, mappings-for-fhir-provenance-mapping-http-hl7-orgfhirprovenance, dicom, family-nav, ig-status, fhirprovenance, hl7-nav, mappings-for-dicom-tag-mapping-http-nema-orgdicom, segment-navbar, segment-breadcrumb, mappings-for-w3c-prov-http-www-w3-orgnsprov, mappings-for-rim-mapping-http-hl7-orgv3]) +The link 'StructureDefinition-HpdAuditEvent-mappings.html#mappings-for-ch-atc-https-www-bag-admin-ch-bag-en-home-html' for "Mapping for HPD Group Entry Audit Event Profile" cannot be resolved (valid targets: [publish-box, w3c.prov, segment-post-footer, mappings-for-fivews-pattern-mapping-http-hl7-orgfhirfivews, mappings-for-ch-atc-https-www-bag-admin-chbagenhome-html, top, root, ch-atc, rim, stripe, mappings-for-workflow-pattern-http-hl7-orgfhirworkflow, segment-footer, logo, segment-content, w5, segment-header, workflow, e-health-suisse-logo, bottom, mappings-for-fhir-provenance-mapping-http-hl7-orgfhirprovenance, dicom, family-nav, ig-status, fhirprovenance, hl7-nav, mappings-for-dicom-tag-mapping-http-nema-orgdicom, segment-navbar, segment-breadcrumb, resource-profile-hpdauditevent-mappings, mappings-for-w3c-prov-http-www-w3-orgnsprov, mappings-for-rim-mapping-http-hl7-orgv3]) diff --git a/input/images/actor-diagram.png b/input/images/actor-diagram.png new file mode 100644 index 0000000..1654305 Binary files /dev/null and b/input/images/actor-diagram.png differ diff --git a/input/images/hl7-logo.png b/input/images/hl7-logo.png deleted file mode 100644 index 4bb7b8f..0000000 Binary files a/input/images/hl7-logo.png and /dev/null differ diff --git a/input/images/overview.png b/input/images/overview.png new file mode 100644 index 0000000..f17af91 Binary files /dev/null and b/input/images/overview.png differ diff --git a/input/includes/img.html b/input/includes/img.html new file mode 100644 index 0000000..c550ad7 --- /dev/null +++ b/input/includes/img.html @@ -0,0 +1,4 @@ +<img src="{{include.img}}" class="figure-img img-responsive img-rounded center-block" alt="{{include.caption}}" + style="width:{{include.width}}"> +<div style="clear:both;"></div> +<p><i>{{include.caption | default: ""}}</i></p> diff --git a/input/includes/menu.xml b/input/includes/menu.xml index f7f6674..edd2cbe 100644 --- a/input/includes/menu.xml +++ b/input/includes/menu.xml @@ -5,13 +5,84 @@ <li> <a href="index.html">Home</a> </li> - <li> - <a href="profiles.html">Profiles</a> - </li> - <li> - <a href="terminology.html">Terminology</a> + <li class="dropdown"> + <a data-toggle="dropdown" href="#" class="dropdown-toggle">Volume 1 + <b class="caret"></b> + </a> + <ul class="dropdown-menu"> + <li> + <a href="volume-1.html#overview">Overview</a> + </li> + <li> + <a href="volume-1.html#actors-transactions-and-content-modules">Actors, Transactions and Content Modules</a> + </li> + <li> + <a href="volume-1.html#integration-profile-options">Integration Profile Options</a> + </li> + <li> + <a href="volume-1.html#actor-groupings">Actor Groupings</a> + </li> + <li> + <a href="volume-1.html#overview---use-cases">Overview - Use Cases</a> + </li> + <li> + <a href="volume-1.html#security-considerations">Security Considerations</a> + </li> + </ul> </li> - <li> - <a href="artifacts.html">Artifacts</a> + <li class="dropdown"> + <a data-toggle="dropdown" href="#" class="dropdown-toggle">Volume 2 + <b class="caret"></b> + </a> + <ul class="dropdown-menu"> + <li> + <a href="volume-2.html#constraints-on-retrieve-atna-audit-event-iti-81">Constraints on Retrieve ATNA Audit Event [ITI-81]</a> + </li> + </ul> </li> +</li> +<li class="dropdown"> + <a data-toggle="dropdown" href="#" class="dropdown-toggle">Volume 3 + <b class="caret"></b> + </a> + <ul class="dropdown-menu"> + <li> + <a href="volume-3.html#audit-trail-consumption-event-types">Audit Trail Consumption Event Types</a> + </li> + <li> + <a href="volume-3.html#document-audit-event-content-profile">Document Audit Event Content Profile</a> + </li> + <li> + <a href="volume-3.html#policy-audit-event-content-profile">Policy Audit Event Content Profile</a> + </li> + <li> + <a href="volume-3.html#access-audit-trail-content-profile">Access Audit Trail Content Profile</a> + </li> + <li> + <a href="volume-3.html#hpd-group-entry-audit-event-content-profile">HPD Group Entry Audit Event Content Profile</a> + </li> + </ul> +</li> +<li class="dropdown"> + <a data-toggle="dropdown" href="#" class="dropdown-toggle">Appendix + <b class="caret"></b> + </a> + <ul class="dropdown-menu"> + <li> + <a href="profiles.html">Profiles</a> + </li> + <li> + <a href="terminology.html">Terminology</a> + </li> + <li> + <a href="searchparameters.html">Search Parameters</a> + </li> + <li> + <a href="changelog.html">Open Issues / Changelog</a> + </li> + </ul> +</li> +<li> + <a href="artifacts.html">Artifacts</a> +</li> </ul> \ No newline at end of file diff --git a/input/pagecontent/changelog.md b/input/pagecontent/changelog.md index bad9a47..2ec05f1 100644 --- a/input/pagecontent/changelog.md +++ b/input/pagecontent/changelog.md @@ -3,14 +3,19 @@ All significant changes to this FHIR implementation guide will be documented on ### v3.3.0-ballot (2024) +#### Added +* Integration of volume 1, 2 and 3 from 'Ergänzung 2.2 zu Anhang 5 EPDV-EDI' in consideration of CP 'EPDBEP-244' [#12](https://github.com/ehealthsuisse/ch-atc/issues/12) + * Add tracecontext by using ChEprFhirAuditEvent as parent profile for all AuditEvent profiles in CH ATC [#18](https://github.com/ehealthsuisse/ch-atc/issues/18) + #### Changed / Updated * Updated the IG dependencies to the current published versions * Adapt VS URL (http://fhir.ch/ig/ch-epr/ValueSet/EprPurposeOfUse) because of renaming CH EPR Term to CH Term [#20](https://github.com/ehealthsuisse/ch-atc/issues/20) +* Change extension http://hl7.org/fhir/StructureDefinition/artifact-identifier to http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/ch-mhd-home-community-id [#21](https://github.com/ehealthsuisse/ch-atc/issues/21) ### v3.2.0 (2024-01-31) The implementation guide was under an informative ballot by HL7 Switzerland until September 30th, 2023. The following comments/issues have been raised and fixed: -#### Open +#### Open Issues * Overview of transactions/use cases [#12](https://github.com/ehealthsuisse/ch-atc/issues/12) #### Added @@ -62,4 +67,4 @@ Updated draft version: * Structural updates of the IG analogous to the further development of the IG Publisher (e.g. new template). ### v1.2.0 (2019-03-01) -Initial published draft version according to 'www.e-health-suisse.ch/fileadmin/user_upload/Dokumente/2019/E/190528_Entwurf_EPDV-EDI_E2A5_ATC_V1.9_e.pdf' (see on [e-health-suisse.ch](https://www.e-health-suisse.ch/beispielseiten/epd-projectathon/programmierhilfen-epd/relevante-spezifikationen.html#ATC)). \ No newline at end of file +Initial published draft version according to 'www.e-health-suisse.ch/fileadmin/user_upload/Dokumente/2019/E/190528_Entwurf_EPDV-EDI_E2A5_ATC_V1.9_e.pdf'. \ No newline at end of file diff --git a/input/pagecontent/index.md b/input/pagecontent/index.md index 0ef212b..dd69d8a 100644 --- a/input/pagecontent/index.md +++ b/input/pagecontent/index.md @@ -1,7 +1,7 @@ ### Introduction -This profile defines the audit trail consumption requirements a community has to provide for a patient. The profile CH ATC defines and precises the actors and transaction [ITI-81] of the [IHE IT Infrastructure Technical Framework Supplement Add RESTful Query to ATNA](http://www.ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_Suppl_RESTful-ATNA.pdf) and defines the content of the Audit Messages. The different types of the Audit Messages are based on the requirements for Document and Policy Access management in order to achieve the Swiss regulation needs on the audit trail access by patients. These Audit Event types differ from the Audit Events which have also to be logged according to the IHE / CH:ATNA requirements. -The CH ATC profile text in the National Integration Profiles (SR816.11, Annex 5, Extension 2) is normative, this implementation guide is informative. This implementation guide is built with [IG Publisher](https://confluence.hl7.org/display/FHIR/IG+Publisher+Documentation) from HL7. See [e-health-suisse.ch](https://www.e-health-suisse.ch/startseite.html) for more information about the Electronic Patient Record in Switzerland. +Patients and their representatives have access to the audit trail of the [Electronic Patient Record (EPR)](https://www.fedlex.admin.ch/eli/cc/2017/203/en) via the portal of their reference community. The Swiss profile Audit Trail Consumption (CH ATC) defines the Audit Messages for document management, access policy management, audit trail retrieval by the patient or their representative(s), and logging of group entries of healthcare professionals. This profile uses the IHE transaction [Retrieve ATNA Audit Event [ITI-81]](https://profiles.ihe.net/ITI/TF/Volume2/ITI-81.html) to consume the Audit Messages from all communities. CH ATC is intended for patients to see what has happened in their EPR. It does not replace the logging of the ATNA Audit Events. This profile fulfills the Swiss regulations and is referenced in Annex 5 of the EPRO-FDHA. +This implementation guide is built with [IG Publisher](https://confluence.hl7.org/display/FHIR/IG+Publisher+Documentation) from HL7. For more information about the EPR, see [patientrecord.ch](https://www.patientrecord.ch/), [e-health-suisse.ch](https://www.e-health-suisse.ch/startseite.html) and [Federal Office of Public Health](https://www.bag.admin.ch/epra). <div markdown="1" class="stu-note"> @@ -9,21 +9,50 @@ The CH ATC profile text in the National Integration Profiles (SR816.11, Annex 5, </div> - -**Download**: You can download this implementation guide in [NPM format](https://confluence.hl7.org/display/FHIR/NPM+Package+Specification) from [here](package.tgz). - -### IP Statements - +### Implementation Guide Structure +This implementation guide is organized into this main sections: + +* Volume 1 - Integration Profiles + * [Overview](volume-1.html#overview) + * [Actors, Transactions and Content Modules](volume-1.html#actors-transactions-and-content-modules) + * [Integration Profile Options](volume-1.html#integration-profile-options) + * [Actor Groupings](volume-1.html#actor-groupings) + * [Overview - Use Cases](volume-1.html#overview---use-cases) + * [Security Considerations](volume-1.html#security-considerations) +* Volume 2 - Transactions + * [Constraints on Retrieve ATNA Audit Event [ITI-81]](volume-2.html#constraints-on-retrieve-atna-audit-event-iti-81) +* Volume 3 - Content Profiles + * [Audit Trail Consumption Event Types](volume-3.html#audit-trail-consumption-event-types) + * [Document Audit Event Content Profile](volume-3.html#document-audit-event-content-profile) + * [Policy Audit Event Content Profile](volume-3.html#policy-audit-event-content-profile) + * [Access Audit Trail Content Profile](volume-3.html#access-audit-trail-content-profile) + * [HPD Group Entry Audit Event Content Profile](volume-3.html#hpd-group-entry-audit-event-content-profile) + +### Conformance Expectations +The key words _must_, _must not_, _required_, _shall_, _shall not_, _should_, _should not_, _recommended_, _may_, and _optional_ in this document are to be interpreted as described in [RFC2119](https://www.ietf.org/rfc/rfc2119.txt). + +#### Scope of Precisions +The extensions, restrictions and translations specified apply to the following [IHE IT Infrastructure (ITI) integration profiles](https://profiles.ihe.net/ITI/index.html): + +* Technical Framework + * [Volume 1](https://profiles.ihe.net/ITI/TF/Volume1/index.html), Revision 20.0, August 4, 2023 - Final Text + * [Volume 2](https://profiles.ihe.net/ITI/TF/Volume2/index.html), Revision 20.0, August 4, 2023 - Final Text + * [Volume 3](https://profiles.ihe.net/ITI/TF/Volume3/index.html), Revision 20.0, August 4, 2023 - Final Text +* Technical Framework Supplements + * [Add RESTful ATNA (Query and Feed)](https://www.ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_Suppl_RESTful-ATNA.pdf), Revision 3.4, August 4, 2023 + * [Internet User Authorization (IUA)](https://profiles.ihe.net/ITI/IUA/index.html), Revision 2.2, June 17, 2022 + +### Download and Analysis +You can download this implementation guide in [npm format](https://confluence.hl7.org/display/FHIR/NPM+Package+Specification) from [here](package.tgz). + +#### IP Statements {% include ip-statements.xhtml %} -### Cross Version Analysis - +#### Cross Version Analysis {% include cross-version-analysis.xhtml %} -### Dependency Table - +#### Dependency Table {% include dependency-table.xhtml %} -### Globals Table - -{% include globals-table.xhtml %} \ No newline at end of file +#### Globals Table +{% include globals-table.xhtml %} diff --git a/input/pagecontent/profiles.md b/input/pagecontent/profiles.md new file mode 100644 index 0000000..1ae1105 --- /dev/null +++ b/input/pagecontent/profiles.md @@ -0,0 +1,2 @@ + +{% include list-profiles.xhtml %} diff --git a/input/pagecontent/profiles.xml b/input/pagecontent/profiles.xml deleted file mode 100644 index 2d38ce4..0000000 --- a/input/pagecontent/profiles.xml +++ /dev/null @@ -1,8 +0,0 @@ -<div xmlns="http://www.w3.org/1999/xhtml" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../input-cache/schemas-r5/fhir-single.xsd"> - - <div> - {% include list-profiles.xhtml %} - </div> - -</div> \ No newline at end of file diff --git a/input/pagecontent/searchparameters.md b/input/pagecontent/searchparameters.md new file mode 100644 index 0000000..0ddd36e --- /dev/null +++ b/input/pagecontent/searchparameters.md @@ -0,0 +1,2 @@ + +{% include list-searchparameters.xhtml %} diff --git a/input/pagecontent/terminology.md b/input/pagecontent/terminology.md new file mode 100644 index 0000000..895d30f --- /dev/null +++ b/input/pagecontent/terminology.md @@ -0,0 +1,3 @@ +### Value Sets + +{% include list-simple-valuesets.xhtml %} diff --git a/input/pagecontent/terminology.xml b/input/pagecontent/terminology.xml deleted file mode 100644 index 01db22f..0000000 --- a/input/pagecontent/terminology.xml +++ /dev/null @@ -1,14 +0,0 @@ -<div xmlns="http://www.w3.org/1999/xhtml" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../input-cache/schemas-r5/fhir-single.xsd"> - - <h3>ValueSets</h3> - <div> - {% include list-simple-valuesets.xhtml %} - </div> - - <!--<h3>CodeSystems</h3> - <div> - {% include list-simple-codesystems.xhtml %} - </div>--> - -</div> \ No newline at end of file diff --git a/input/pagecontent/volume-1.md b/input/pagecontent/volume-1.md new file mode 100644 index 0000000..51bf23d --- /dev/null +++ b/input/pagecontent/volume-1.md @@ -0,0 +1,205 @@ +### Overview + +This profile defines the audit trail consumption requirements a community has to provide for a patient’s audit trail. + +The profile CH:ATC defines and precises the actors and Retrieve Audit Event [ITI-81] of the [IHE ITI Supplement Add RESTful Query to ATNA](https://www.ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_Suppl_RESTful-ATNA.pdf) and defines the content of the Audit Messages. The different types of the Audit Messages are based on the requirements for Document and Access Policy management as well as the entry of healthcare professionals into a group in order to achieve the Swiss regulation needs on the audit trail access by patients. These Audit Event types differ from the Audit Events which have also to be logged according to the ATNA requirements. + +{% include img.html img="overview.png" caption="Figure 1: CH:ATC Overview within the Swiss EPR circle of trust" width="60%" %} + +Each community shall provide one endpoint to a Patient Audit Record Repository which can be queried according to the Retrieve Audit Event [ITI-81] RESTful Query transaction. A reference community shall implement a Patient Audit Consumer which will query all Patient Audit Record Repositories, aggregate the results and provide it to the patient. + +How the Patient Audit Record Repository generates or collects the specified Audit Events within the community is outside the scope of this profile. + + +### Actors, Transactions and Content Modules +Figure 2 shows the actors directly involved in the CH:ATC Profile and the relevant transactions between them. If needed for context, other actors that may be indirectly involved due to their participation in other related profiles are shown in dotted lines. + +{% include img.html img="actor-diagram.png" caption="Figure 2: CH:ATC Actor diagram" width="60%" %} + +Table 1 lists the transactions for each actor directly involved in the CH:ATC Profile. To claim compliance with this Profile, an actor shall support all required transactions (labeled "R") and may support the optional transactions (labeled "O"). + +{:class="table table-bordered"} +| Actors | Transactions | Initiator or Responder | Opt | Reference | +| --- | --- | --- | --- | --- | +| Patient Audit Consumer | Retrieve Audit Event [ITI-81] | Initiator | R | [Patient Audit Consumer](#patient-audit-consumer) | +| Patient Audit Record Repository | Retrieve Audit Event [ITI-81] | Responder | R | [Patient Audit Record Repository](#patient-audit-record-repository) | + +_Table 1: CH:ATC Profile - Actors and Transactions_ + +#### Actor Descriptions and Actor Profile Requirements + +The actors defined in this profile are based on the [IHE ITI TF-2](https://profiles.ihe.net/ITI/TF/Volume2/index.html) and the [IHE ITI Supplement Add RESTful Query to ATNA](https://www.ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_Suppl_RESTful-ATNA.pdf) actors. This section documents any additional requirements on the profile’s actors required in the Swiss EPR context. + +#### Patient Audit Record Repository + +For the actor Patient Audit Record Repository the actor Audit Record Repository in [IHE ITI Supplement Add RESTful Query to ATNA](https://www.ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_Suppl_RESTful-ATNA.pdf) is relevant. + +The Patient Audit Record Repository shall support the Retrieve Audit Message Option from the Audit Record Repository (**TODO leere section** [IHE ITI TF-1, chapter 9.2.3](https://profiles.ihe.net/ITI/TF/Volume1/ch-9.html#9.2.3)) with the search capabilities as defined in [IHE ITI TF-2, chapter 3.81](https://profiles.ihe.net/ITI/TF/Volume2/ITI-81.html) and the Audit Message Formats defined in Volume 3 - Content Profiles. + +#### Patient Audit Consumer + +For the actor Patient Audit Consumer the actor Audit Consumer in [IHE ITI Supplement Add RESTful Query to ATNA](https://www.ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_Suppl_RESTful-ATNA.pdf) is relevant. + +The Patient Audit Consumer queries a Patient Audit Record Repository for Audit Events defined by this profile. The Patient Audit Consumer shall support the Retrieve Audit Message Option from the Audit Consumer (**TODO leere section** [IHE ITI TF-1, chapter 9.2.3](https://profiles.ihe.net/ITI/TF/Volume1/ch-9.html#9.2.3)). + +The Patient Audit Consumer should filter duplicate AuditEvents for display (e.g. Document Retrieval Audit Event for the same document access are in multiple Patient Audit Record Repositories, because the requesting and responding community need to make the AuditEvent available). + +Subsequent processing like translation of the coded elements into the users preferred language and display of the query result is not defined in this profile. + + +### Integration Profile Options + +{:class="table table-bordered"} +| CH:ATC Actor | Option name | +| --- | --- | +| Patient Audit Consumer | Aggregate Audit Message Option | +| Patient Audit Record Repository | - | + +_Table 2: Actors and Options_ + +The aggregate Audit Message Options allows the Patient Audit Consumer to aggregate results from multiple Patient Audit Record Repositories. A reference community shall support at least one Patient Audit Consumer with this Option. If a Patient Audit Record Repository does not respond, an OperationOutcome with a severity warning shall be added to the aggregated results indicating the Patient Audit Record Repository of the community that does not respond. + + +### Actor Groupings + +An actor from this profile (Column 1) shall implement all of the required transactions and/or content modules in this profile <i><strong>in addition to <u>all</u></strong></i> of the requirements for the grouped actor. + +{:class="table table-bordered"} +<table> + <thead> + <tr> + <td> + <p><strong>CH:ATC Actor</strong></p> + </td> + <td> + <p><strong>Grouping Condition</strong></p> + </td> + <td> + <p><strong>Actor to be grouped with</strong></p> + </td> + <td> + <p><strong>Reference</strong></p> + </td> + </tr> + </thead> + <tbody> + <tr> + <td rowspan="4"> + <p>Patient Audit Consumer</p> + </td> + <td> + <p>Required</p> + </td> + <td> + <p>ATNA - Secure Node</p> + </td> + <td> + <p>Amendment 1 of Annex 5 EPRO-FDHA</p> + </td> + </tr> + <tr> + <td> + <p>Required</p> + </td> + <td> + <p>CT - Time Client</p> + </td> + <td> + <p><a href="https://profiles.ihe.net/ITI/TF/Volume1/index.html">IHE ITI TF-1</a></p> + </td> + </tr> + <tr> + <td> + <p>Required</p> + </td> + <td> + <p>IUA - Authorization Client</p> + </td> + <td> + <p><a href="https://profiles.ihe.net/ITI/IUA/index.html">IHE ITI Suppl IUA</a></p> + </td> + </tr> + <tr> + <td> + <p>Optional</p> + </td> + <td> + <p>CH:CPI - CPI Consumer</p> + </td> + <td> + <p>Amendment 2.3 of Annex 5 EPRO-FDHA</p> + </td> + </tr> + <tr> + <td rowspan="4"> + <p>Patient Audit Record Repository</p> + </td> + <td> + <p>Required</p> + </td> + <td> + <p>ATNA - Secure Node</p> + </td> + <td> + <p>Amendment 1 of Annex 5 EPRO-FDHA</p> + </td> + </tr> + <tr> + <td> + <p>Required</p> + </td> + <td> + <p>CT - Time Client</p> + </td> + <td> + <p><a href="https://profiles.ihe.net/ITI/TF/Volume1/index.html">IHE ITI TF-1</a></p> + </td> + </tr> + <tr> + <td> + <p>Required</p> + </td> + <td> + <p>CH:ADR - Authorization Decision Consumer</p> + </td> + <td> + <p>Amendment 2.1 of Annex 5 EPRO-FDHA</p> + </td> + </tr> + <tr> + <td> + <p>Required</p> + </td> + <td> + <p>IUA - Resource Server</p> + </td> + <td> + <p><a href="https://profiles.ihe.net/ITI/IUA/index.html">IHE ITI Suppl IUA</a></p> + </td> + </tr> + </tbody> +</table> + +_Table 3: Actor Grouping_ + +Section [Security Considerations](#security-considerations) describes the groupings required for security considerations. + + +### Overview - Use Cases + +Activities related to the EPR are audited for specific document and access policy management events as well as entry events of healthcare professionals into a group and stored in the communities. + +This profile supports the following Use Cases: + +<ol type="a"> + <li>A patient can request protocols of the activities related to his EPR.</li> + <li>A patient representative can request a protocol of the activities related to the patients delegated EPR.</li> +</ol> + +### Security Considerations + +The transaction is used to exchange sensitive information and requires authentication and authorization. This profile requires all actors to be grouped with Secure Node or Secure Application implementing the "STX: TLS 1.2 floor using BCP195 Option" defined in the [IHE ITI TF-2, chapter 3.19.6.2.3](https://profiles.ihe.net/ITI/TF/Volume2/ITI-19.html#3.19.6.2.3). + +Access control shall be implemented by grouping the CH:ATC Audit Consumer and Audit Record Repository with the Authorization Client and Resource Server from the IUA trial implementation profile using the SAML Token option (see [IHE ITI Supplement IUA, chapter 3.72.4.3.2](https://profiles.ihe.net/ITI/IUA/index.html#372432-saml-token-option)). As defined therein, the CH:ATC Audit Consumer and Audit Record Repository shall implement the Incorporate Authorization Token [ITI-72] transaction to convey the XUA token. + +The CH:ATC Patient Audit Record Repository shall be grouped with CH:ADR, i.e. the CH:ATC Patient Audit Record Repository shall use the CH:ADR Authorization Decision Request transaction to authorize the transaction and enforce the authorization decision retrieved from CH:ADR Authorization Decision Response. diff --git a/input/pagecontent/volume-2.md b/input/pagecontent/volume-2.md new file mode 100644 index 0000000..13235a1 --- /dev/null +++ b/input/pagecontent/volume-2.md @@ -0,0 +1,63 @@ +### Constraints on Retrieve ATNA Audit Event [ITI-81] + +The Retrieve ATNA Audit Event [ITI-81] transaction is defined in [IHE ITI TF-2](https://profiles.ihe.net/ITI/TF/Volume2/index.html) and the [IHE ITI Supplement Add RESTful Query to ATNA](https://www.ihe.net/uploadedFiles/Documents/ITI/IHE_ITI_Suppl_RESTful-ATNA.pdf). The following rules shall be applied for the CH:ATC profile. + +#### Message Semantics + +The Retrieve ATNA Audit Event message shall be a HTTP GET request sent to the Patient Audit Record Repository. This message is a FHIR search (see [http://hl7.org/fhir/R4/search.html](http://hl7.org/fhir/R4/search.html)) on AuditEvent Resources (see [http://hl7.org/fhir/R4/auditevent.html](http://hl7.org/fhir/R4/auditevent.html)). This "search" target is formatted as: + +``` http +<scheme>://<authority>/<path>/AuditEvent?date=ge[start-time]&date=le[stop-time]&<query> +``` + +where: + +<ol type="a"> + <li> + <code><scheme></code> shall be https. + </li> + <li> + <code><query></code> shall include the entity.identifier as defined in <a href="#additional-atna-search-parameters">Additional ATNA Search Parameters</a> and may include additional ATNA Search parameters. If entity.identifier is not included an HTTP response code 400 - Bad Request shall be returned. + </li> +</ol> + + +#### Additional ATNA Search Parameters + +The Patient Audit Consumer shall not use the following parameters in a query parameters: address, patient.identifier, source, type, user, outcome. The Patient Audit Consumer may use other parameters as listed in Retrieve Audit Event [ITI-81]. + +**entity.identifier** is a parameter of token type. This parameter specifies unique identifier for the object. The parameter value should be identified in accordance to the entity type; +For example: +``` http +https://example.com/ARRservice/AuditEvent?date=ge2020-03-22&date=le2025-03-22&entity.identifier=urn:oid:2.16.756.5.30.1.127.3.10.3|5678 +``` + +The Audit Record Repository shall match this parameter with the AuditEvent.entity.what.identifier field that is of type identifier (ParticipantObjectID in DICOM schema). + +For the CH:ATC profile the entity.identifier has to be the EPR-SPID: +`entity.identifier=urn:oid:2.16.756.5.30.1.127.3.10.3|<<<value EPR-SPID>>>` + + +#### Message Semantics for Response + +The returned AuditEvent FHIR resources in the Bundle shall conform the CH:ATC AuditEvent profile, see [Volume 3 - Content Profiles](volume-3.html). + + +#### Security Considerations + +The transaction is used to exchange sensitive information and requires authentication and authorization. This profile requires all actors to be grouped with Secure Node or Secure Application implementing the "STX: TLS 1.2 floor using BCP195 Option" defined in the [IHE ITI TF-2, chapter 3.19.6.2.3](https://profiles.ihe.net/ITI/TF/Volume2/ITI-19.html#3.19.6.2.3). + +Access control shall be implemented by grouping the CH:ATC Audit Consumer and Audit Record Repository with the Authorization Client and Resource Server from the IUA trial implementation profile using the SAML Token option (see [IHE ITI Supplement IUA , chapter 3.72.4.3.2](https://profiles.ihe.net/ITI/IUA/index.html#372432-saml-token-option)). As defined therein, the CH:ATC Audit Consumer and Audit Record Repository shall implement the Incorporate Authorization Token [ITI-72] transaction to convey the XUA token. + +The actors shall implement the Incorporate Authorization Token [ITI-72] transaction with SAML token option, using the base64url encoded SAML assertion defined in XUA to the authorization header of the HTTP1.1 GET request with key "Bearer" as follows: +``` http +GET /example/url/to/resource/location HTTP/1.1 +Authorization: "Bearer" fFBGRNJru1FQd[…omitted for brevity…]44AzqT3Zg +Host: examplehost.com +``` + +The CH:ATC Patient Audit Record Repository shall be grouped with CH:ADR, i.e. the CH:ATC Patient Audit Record Repository shall use the CH:ADR Authorization Decision Request transaction to authorize the transaction and enforce the authorization decision retrieved from CH:ADR Authorization Decision Response. + + +#### Security Audit Considerations +An audit event as specified in [Access Audit Trail Content Profile](volume-3.html#access-audit-trail-content-profile) shall be returned by a query to Patient Audit Record Repository after the Patient Audit Record Repository has been queried by a Patient Audit Consumer. diff --git a/input/pagecontent/volume-3.md b/input/pagecontent/volume-3.md new file mode 100644 index 0000000..e2233fe --- /dev/null +++ b/input/pagecontent/volume-3.md @@ -0,0 +1,752 @@ +There are four different categories of Audit Events in the context of the EPR: + +<ol type="a"> + <li> + Document management (e.g. a document has been uploaded to the EPR of a patient or a list of document metadata has been retrieved) + </li> + <li> + Policy management (e.g. a patient has given a healthcare professional access rights to his EPR) + </li> + <li> + Access Patient Audit Record Repository by a patient or representative (a patient viewed the Audit Trail for the Audit Record Repository) + </li> + <li> + Notification of the patient about the entry of healthcare professionals into a group + </li> +</ol> + +Each category is described as a content profile. These content profiles are based on the AuditEvent Resource, [http://hl7.org/fhir/R4/auditevent.html](http://hl7.org/fhir/R4/auditevent.html). + +The AuditEvent Resource has [mapping rules to the DICOM audit message format](http://hl7.org/fhir/R4/auditevent-mappings.html#dicom), which allows to map to ATNA. + +### Audit Trail Consumption Event Types +The following Audit Trail Consumption Event Types are defined and shall be supported, see [EprAuditTrailConsumptionEventTypes](http://fhir.ch/ig/ch-term/ValueSet/EprAuditTrailConsumptionEventType) from [Codesystem 2.16.756.5.30.1.127.3.10.7](https://fhir.ch/ig/ch-term/CodeSystem-2.16.756.5.30.1.127.3.10.7.html). + +{:class="table table-bordered"} +| Type | Description | Profile Ref | Opt Community | +| --- | --- | --- | --- | +| ATC_DOC_CREATE | Document upload | [Document Audit Event Content Profile](#document-audit-event-content-profile) | R | +| ATC_DOC_READ | Document retrieval | [Document Audit Event Content Profile](#document-audit-event-content-profile) | R | +| ATC_DOC_UPDATE | Document or Document Metadata update | [Document Audit Event Content Profile](#document-audit-event-content-profile) | R | +| ATC_DOC_DELETE | Document removal | [Document Audit Event Content Profile](#document-audit-event-content-profile) | R | +| ATC_DOC_SEARCH | Document search | [Document Audit Event Content Profile](#document-audit-event-content-profile) | R | +| ATC_POL_CREATE_AUT_PART_AL | Authorize participants to access level/date | [Policy Audit Event Content Profile](#policy-audit-event-content-profile) | R, (NP if not reference community) | +| ATC_POL_UPDATE_AUT_PART_AL | Update access level/date of authorized participants | [Policy Audit Event Content Profile](#policy-audit-event-content-profile) | R, (NP: if not reference community) | +| ATC_POL_REMOVE_AUT_PART_AL | Remove authorization for participants | [Policy Audit Event Content Profile](#policy-audit-event-content-profile) | R, (NP: if not reference community) | +| ATC_POL_DEF_CONFLEVEL | Set or update default Confidentiality Level | [Policy Audit Event Content Profile](#policy-audit-event-content-profile) | R, (NP: if not reference community) | +| ATC_POL_DIS_EMER_USE | Disabling Emergency Access | [Policy Audit Event Content Profile](#policy-audit-event-content-profile) | R, (NP: if not reference community) | +| ATC_POL_ENA_EMER_USE | Enabling Emergency Access | [Policy Audit Event Content Profile](#policy-audit-event-content-profile) | R, (NP: if not reference community) | +| ATC_POL_INCL_BLACKLIST | Assign Healthcare Professional to Blacklist | [Policy Audit Event Content Profile](#policy-audit-event-content-profile) | R, (NP: if not reference community) | +| ATC_POL_EXL_BLACKLIST | Exclude Healthcare Professional from Blacklist | [Policy Audit Event Content Profile](#policy-audit-event-content-profile) | R, (NP: if not reference community) | +| ATC_LOG_READ | Accessing Patient Audit Record Repository | [Access Audit Trail Content Profile](#access-audit-trail-content-profile) | R | +| ATC_HPD_GROUP_ENTRY_NOTIFY | Entry of healthcare professionals into a group | [HPD Group Entry Audit Event Content Profile](#hpd-group-entry-audit-event-content-profile) | R, (NP: if not reference community) | + +_Table 4: Audit Trail Consumption Event Types_ + + +### Document Audit Event Content Profile + +This content profile describes Audit Event related to Document Management. The following Data Elements shall be provided: + +{:class="table table-bordered"} +<table> + <tbody> + <tr> + <td> + <p><strong>Data Element</strong></p> + </td> + <td> + <p><strong>Description</strong></p> + </td> + <td> + <p><strong>Property/Value</strong></p> + </td> + </tr> + <tr> + <td> + <p>Event Type</p> + </td> + <td colspan="2"> + <p> + Document upload<br /> + Document retrieval<br /> + Document or Document Metadata update<br /> + Document removal<br /> + Document search + </p> + </td> + </tr> + <tr> + <td> + <p>Event Date and Time</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>UTC</p> + </td> + </tr> + <tr> + <td> + <p>Participants</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + </tr> + <tr> + <td rowspan="6"> + <p>Initiator</p> + </td> + <td> + <p>Patient</p> + </td> + <td> + <p>Name</p> + </td> + </tr> + <tr> + <td> + <p>Representative of patient</p> + </td> + <td> + <p>Name<br />UAP-ID or EPR-SPID</p> + </td> + </tr> + <tr> + <td> + <p>Authorized Healthcare Professional</p> + </td> + <td> + <p>Name<br />GLN</p> + </td> + </tr> + <tr> + <td> + <p>Assistant of a Healthcare Professional</p> + </td> + <td> + <p>Name<br />GLN</p> + </td> + </tr> + <tr> + <td> + <p>Technical User</p> + </td> + <td> + <p>Name<br />Identifier</p> + </td> + </tr> + <tr> + <td> + <p>Document Administrator</p> + </td> + <td> + <p>Name<br />UAP-ID</p> + </td> + </tr> + <tr> + <td rowspan="2"> + <p>Responsible<sup><a href="#_ftn5.1" name="_ftn5.1">[5.1]</a></sup></p> + </td> + <td> + <p>Patient</p> + </td> + <td> + <p>Name</p> + </td> + </tr> + <tr> + <td> + <p>Healthcare Professional</p> + </td> + <td> + <p>Name<br />GLN</p> + </td> + </tr> + <tr> + <td> + <p>Groups where Healthcare Professional is member</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Name of Group<br />OID</p> + </td> + </tr> + <tr> + <td> + <p>Purpose of Use</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>NORM, EMER, AUTO, DICOM_AUTO</p> + </td> + </tr> + <tr> + <td> + <p>Patient</p> + </td> + <td> + <p>Involved patient</p> + </td> + <td> + <p>EPR-SPID</p> + </td> + </tr> + <tr> + <td rowspan="3"> + <p>Document<sup><a href="#_ftn5.2" name="_ftn5.2">[5.2]</a></sup></p> + </td> + <td> + <p>type of document</p> + </td> + <td> + <p>typeCode<sup><a href="#_ftn5.3" name="_ftn5.3">[5.3]</a></sup> (SNOMED CT code)</p> + </td> + </tr> + <tr> + <td> + <p>reference to document</p> + </td> + <td> + <p> + <a href="https://profiles.ihe.net/ITI/TF/Volume3/ch-4.2.html#4.2.3.2.26">uniqueId</a><br /> + <a href="https://profiles.ihe.net/ITI/TF/Volume3/ch-4.2.html#4.2.3.2.18">repositoryUniqueId</a><br /> + <a href="https://profiles.ihe.net/ITI/TF/Volume3/ch-4.2.html#4.2.3.2.12">homeCommunityID</a> + </p> + </td> + </tr> + <tr> + <td> + <p>title of document</p> + </td> + <td> + <p> + <a href="https://profiles.ihe.net/ITI/TF/Volume3/ch-4.2.html#4.2.3.2.24">title</a> + </p> + </td> + </tr> + </tbody> +</table> +<p><sup><a href="#_ftnref5.1" name="_ftn5.1">[5.1]</a></sup> <small>If different from Initiator (Representative of patient acting on behalf of a patient then patient is responsible).</small></p> +<p><sup><a href="#_ftnref5.2" name="_ftn5.2">[5.2]</a></sup> <small>Required for Document upload, Document retrieval, Document or Document Metadata update and Document removal but not for Document search.</small></p> +<p><sup><a href="#_ftnref5.3" name="_ftn5.3">[5.3]</a></sup> <small>Annex 3 EPRO-FDHA, chapter 2.6 type of document (2.16.756.5.30.1.127.3.10.1.27).</small></p> + +_Table 5: Document Audit Event Data Elements_ + +This profile defines the content of the document audit events which a community has to provide for a patient's audit trail. This profile builds on AuditEvent ([http://hl7.org/fhir/R4/auditevent.html](http://hl7.org/fhir/R4/auditevent.html)). +* [StructureDefinition for Document Audit Event Profile](StructureDefinition-DocumentAuditEvent.html) + +The mapping from the Document Audit Event Resource to the Data Elements is as follows: +* [Mapping for Document Audit Event Profile](StructureDefinition-DocumentAuditEvent-mappings.html#mappings-for-ch-atc-https-www-bag-admin-ch-bag-en-home-html) + + +#### Example of a Document Audit Event: Document upload + +{:class="table table-bordered"} +| Event | Upload | +| Resource title of Document | Austrittsbericht von Julia Helfe-Gern | +| Resource: type of Document | Nicht näher bezeichnetes Dokument (SNOMED CT: 419891008) | +| Resource: reference to Document | uniqueID | +| Event Date and Time | 10.10.2020 18:29 | +| Participant, Initiator | Julia Helfe-Gern | +| Participant, Responsible | representing Jakob Wieder-Gesund | + +_Table 6: Uploading a Record Artifact by a patient representative (atc-doc-create-rep-pat)_ + +* Example for Document Audit Event Profile: [XML](AuditEvent-atc-doc-create-rep-pat.xml.html), [JSON](AuditEvent-atc-doc-create-rep-pat.json.html) + + +#### Example of a Document Audit Event: Document search + +{:class="table table-bordered"} +| Event | Search for documents | +| Event Date and Time | 10.10.2020 18:49 | +| Participant, Initiator | David Mustermann | +| Participant, Responsible | representing Dr. med. Sabine Musterfrau | +| Participant, Group | Kardiologie Universitätsspital Musterstadt | +| Purpose of event | Emergency Access | + +_Table 7: Example of a Document Audit Event: Document search_ + +* Example for Document Audit Event Profile: [XML](AuditEvent-atc-doc-search.xml.html), [JSON](AuditEvent-atc-doc-search.json.html) + + +### Policy Audit Event Content Profile + +This content profile describes Audit Events related to Policy Management. The following Data Elements shall be provided: + +{:class="table table-bordered"} +<table> + <tbody> + <tr> + <td> + <p><strong>Data Element</strong></p> + </td> + <td> + <p><strong>Description</strong></p> + </td> + <td> + <p><strong>Property/Value</strong></p> + </td> + </tr> + <tr> + <td rowspan="8"> + <p>Event Type</p> + </td> + <td colspan="2"> + <p>Authorize participants to access level/date</p> + </td> + </tr> + <tr> + <td colspan="2"> + <p>Update access level/date of authorized participants</p> + </td> + </tr> + <tr> + <td colspan="2"> + <p>Remove authorization for participants to access level/date</p> + </td> + </tr> + <tr> + <td colspan="2"> + <p>Set or update the default Confidentiality Level for new documents</p> + </td> + </tr> + <tr> + <td colspan="2"> + <p>Disabling Emergency Access</p> + </td> + </tr> + <tr> + <td colspan="2"> + <p>Enabling Emergency Access</p> + </td> + </tr> + <tr> + <td colspan="2"> + <p>Exclude a Healthcare Professional from accessing the EPR</p> + </td> + </tr> + <tr> + <td colspan="2"> + <p>Revoke the exclusion of a Healthcare Professional from accessing the EPR</p> + </td> + </tr> + <tr> + <td> + <p>Event Date Time</p> + </td> + <td> </td> + <td> + <p>UTC</p> + </td> + </tr> + <tr> + <td> + <p>Participants</p> + </td> + <td> </td> + <td> </td> + </tr> + <tr> + <td rowspan="5"> + <p>Initiator</p> + </td> + <td> + <p>Patient</p> + </td> + <td> + <p>Name</p> + </td> + </tr> + <tr> + <td> + <p>Representative of patient</p> + </td> + <td> + <p>Name<br />UAP-ID or EPR-SPID</p> + </td> + </tr> + <tr> + <td> + <p>Authorized Healthcare Professional<sup><a href="#_ftn8.1" name="_ftnref8.1">[8.1]</a></sup></p> + </td> + <td> + <p>Name<br />GLN</p> + </td> + </tr> + <tr> + <td> + <p>Assistant of a Healthcare Professional</p> + </td> + <td> + <p>Name<br />GLN</p> + </td> + </tr> + <tr> + <td> + <p>Policy Administrator</p> + </td> + <td> + <p>Name<br />UAP-ID</p> + </td> + </tr> + <tr> + <td rowspan="2"> + <p>Responsible</p> + </td> + <td> + <p>Patient</p> + </td> + <td> + <p>Name</p> + </td> + </tr> + <tr> + <td> + <p>Healthcare Professional</p> + </td> + <td> + <p>Name<br />GLN</p> + </td> + </tr> + <tr> + <td> + <p>Patient</p> + </td> + <td> + <p>Involved patient</p> + </td> + <td> + <p>EPR-SPID</p> + </td> + </tr> + <tr> + <td rowspan="7"> + <p>Resource</p> + </td> + <td> + <p>Resource Role</p> + </td> + <td> + <p>HCP, GRP or REP</p> + </td> + </tr> + <tr> + <td> + <p>Healthcare Professional</p> + </td> + <td> + <p>Name<br />GLN</p> + </td> + </tr> + <tr> + <td> + <p>Group of Healthcare Professional</p> + </td> + <td> + <p>Name of Group<br />OID</p> + </td> + </tr> + <tr> + <td> + <p>Representative of patient</p> + </td> + <td> + <p>Name<br />UAP-ID or EPR-SPID</p> + </td> + </tr> + <tr> + <td> + <p>AccessLevel<sup><a href="#_ftn8.2" name="_ftnref8.2">[8.2]</a></sup></p> + </td> + <td> + <p>one of urn:e-health-suisse:2015:policies:access-level:<br />normal, restricted, delegation-and-restricted, delegation-and-normal, full</p> + </td> + </tr> + <tr> + <td> + <p>AccessLimitedToDate8</p> + </td> + <td> + <p>Date</p> + </td> + </tr> + <tr> + <td> + <p>ProvideLevel<sup><a href="#_ftn8.3" name="_ftnref8.3">[8.3]</a></sup></p> + </td> + <td> + <p>one of urn:e-health-suisse:2015:policies:provide-level:<br />normal, restricted, secret</p> + </td> + </tr> + </tbody> +</table> +<p><sup><a href="#_ftnref8.1" name="_ftn8.1">[8.1]</a></sup> <small>Healthcare Professional or Assistant of Healthcare Professional can only be a participant for the first Event Type (Authorize participants to access level).</small></p> +<p><sup><a href="#_ftnref8.2" name="_ftn8.2">[8.2]</a></sup> <small>Access Level and the date if the access is limited (AccessLimitedToDate) are required for the first two Event Types (Authorize, update Authorization participants to access level/date), for the other Event Types these parameters do not need to be specified.</small></p> +<p><sup><a href="#_ftnref8.3" name="_ftn8.3">[8.3]</a></sup> <small>Provide Level is only relevant for the Event Type Default Confidentiality Level for new Documents.</small></p> + +_Table 8: Policy Audit Event Data Elements_ + +This content profile defines the document audit events which a community has to provide for a patients audit trail. This profile builds on AuditEvent ([http://hl7.org/fhir/R4/auditevent.html](http://hl7.org/fhir/R4/auditevent.html)). +* [StructureDefinition for Policy Audit Event Profile](StructureDefinition-PolicyAuditEvent.html) + +The mapping from the Document Audit Event Resource to the Data Elements is as follows: +* [Mapping for Policy Audit Event Profile](StructureDefinition-PolicyAuditEvent-mappings.html#mappings-for-ch-atc-https-www-bag-admin-ch-bag-en-home-html) + + +#### Examples + +{:class="table table-bordered"} +| Event | Create | +| Resource: HCP | EPR-Access Level "delegation-and-restricted"<br />till 31.12.2020 08:00 to<br />Dr. med. Hans Allzeitbereit | +| Event Date and Time | 22.09.2020 09:47 | +| Participant Initiator | Jakob Wieder-Gesund | + +_Table 9: Example Create Delegation and Restricted access for a healthcare professional (atc-pol-create-acc-right)_ + +* Example for Policy Audit Event Profile: [XML](AuditEvent-atc-pol-create-acc-right.xml.html), [JSON](AuditEvent-atc-pol-create-acc-right.json.html) + +{:class="table table-bordered"} +| Event | Create | +| Resource: Representative | Julia Helfe-Gern | +| Event Date and Time | 22.09.2020 09:48 | +| Participant Initiator | Jakob Wieder-Gesund | + +_Table 10: Example Create for a representative (atc-pol-create-rep)_ + +* Example for Policy Audit Event Profile: [XML](AuditEvent-atc-pol-create-rep.xml.html), [JSON](AuditEvent-atc-pol-create-rep.json.html) + + +### Access Audit Trail Content Profile + +This content profile describes Audit Event related to Accessing the Audit Trail of a Patient from a Patient Audit Record Repository. The following Data Elements shall be provided: + +{:class="table table-bordered"} +<table> + <tbody> + <tr> + <td> + <p><strong>Data Element</strong></p> + </td> + <td> + <p><strong>Description</strong></p> + </td> + <td> + <p><strong>Property/Value</strong></p> + </td> + </tr> + <tr> + <td> + <p>Event Type</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Access Audit Trail</p> + </td> + </tr> + <tr> + <td> + <p>Event Date and Time</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>UTC</p> + </td> + </tr> + <tr> + <td> + <p>Participants</p> + </td> + <td> + <p> </p> + </td> + <td> + <p> </p> + </td> + </tr> + <tr> + <td rowspan="2"> + <p>Initiator</p> + </td> + <td> + <p>Patient</p> + </td> + <td> + <p>Name</p> + </td> + </tr> + <tr> + <td> + <p>Representative of patient</p> + </td> + <td> + <p>Name<br />UAP-ID or EPR-SPID</p> + </td> + </tr> + <tr> + <td> + <p>Responsible</p> + </td> + <td> + <p>Patient</p> + </td> + <td> + <p>Name</p> + </td> + </tr> + <tr> + <td> + <p>Patient</p> + </td> + <td> + <p>Involved patient</p> + </td> + <td> + <p>EPR-SPID</p> + </td> + </tr> + </tbody> +</table> + +_Table 11: Access Audit Trail Data Elements_ + +This content profile defines the access audit trail event, which a community has to provide for a patient’s audit trail. This profile builds on AuditEvent ([http://hl7.org/fhir/R4/auditevent.html](http://hl7.org/fhir/R4/auditevent.html)). +* [StructureDefinition for Access Audit Trail Event Profile](StructureDefinition-AccessAuditTrailEvent.html) + +The mapping from the Access Audit Trail Event Resource to the Data Elements is as follows: +* [Mapping for Access Audit Trail Event Profile](StructureDefinition-AccessAuditTrailEvent-mappings.html#mappings-for-ch-atc-https-www-bag-admin-ch-bag-en-home-html) + + +#### Example + +{:class="table table-bordered"} +| Event | Access Audit Trail | +| Patient | Jakob Wieder-Gesund | +| Timestamp | 22.09.2020 10:47 | +| Participant | Jakob Wieder-Gesund | + +_Table 12: Example Log Access (atc-log-read)_ + +* Example for Access Audit Trail Event Profile: [XML](AuditEvent-atc-log-read.xml.html), [JSON](AuditEvent-atc-log-read.json.html) + + +### HPD Group Entry Audit Event Content Profile + +This content profile describe the Audit Event related to the entry of a healthcare professional into a HPD group for which the patient is notified. The following Data Elements shall be provided: + +{:class="table table-bordered"} +<table> + <tbody> + <tr> + <td> + <p><strong>Data Element</strong></p> + </td> + <td> + <p><strong>Description</strong></p> + </td> + <td> + <p><strong>Property/Value</strong></p> + </td> + </tr> + <tr> + <td> + <p>Event Type</p> + </td> + <td colspan="2"> + <p>Patient notified of Healthcare Professionals added to a group</p> + </td> + </tr> + <tr> + <td> + <p>Event Date and Time</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>UTC</p> + </td> + </tr> + <tr> + <td> + <p>Notification Service</p> + </td> + <td> + <p> </p> + </td> + <td> + <p>Name</p> + </td> + </tr> + <tr> + <td> + <p>Patient</p> + </td> + <td> + <p>Notified patient</p> + </td> + <td> + <p>EPR-SPID</p> + </td> + </tr> + <tr> + <td> + <p>Healthcare Professionals</p> + </td> + <td> + <p>Healthcare professionals</p> + </td> + <td> + <p>Name<br />GLN</p> + </td> + </tr> + <tr> + <td> + <p>Group</p> + </td> + <td> + <p>Group where Healthcare Professionals are added as members</p> + </td> + <td> + <p>Name of Group<br />OID</p> + </td> + </tr> + </tbody> +</table> + +_Table 13: HPD Group Entry Audit Event Elements_ + +This profile defines the content of the HPD group entry audit event. This profile builds on AuditEvent ([http://hl7.org/fhir/R4/auditevent.html](http://hl7.org/fhir/R4/auditevent.html)). +* [StructureDefinition for HPD Group Entry Audit Event Profile](StructureDefinition-HpdAuditEvent.html) + +The mapping from the HPD Group Entry Audit Event Resource to the Data Elements is as follows: +* [Mapping for HPD Group Entry Audit Event Profile](StructureDefinition-HpdAuditEvent-mappings.html#mappings-for-ch-atc-https-www-bag-admin-ch-bag-en-home-html) + + +#### Example + +{:class="table table-bordered"} +| Event | Group entry of healthcare professional: | +| Healthcare professionals | Dr. med. Sabine Musterfrau | +| Timestamp | 10.10.2020 10:05 | +| Participant, Group | Kardiologie Universitätsspital Musterstadt | +| Patient | Jakob Wieder-Gesund | + +_Table 14: Example group entry of healthcare professionals_ + +* Example for HPD Group Entry Audit Event Profile: [XML](AuditEvent-atc-hpd-group-entry-notify.xml.html), [JSON](AuditEvent-atc-hpd-group-entry-notify.json.html) + diff --git a/input/pages/publish.ini b/input/pages/publish.ini deleted file mode 100644 index 3d08b59..0000000 --- a/input/pages/publish.ini +++ /dev/null @@ -1,4 +0,0 @@ -[website] -style=fhir.layout -server=apache -url=http://fhir.ch/ig/ch-atc \ No newline at end of file diff --git a/input/resources/structuredefinition/AccessAuditTrailEvent.xml b/input/resources/structuredefinition/AccessAuditTrailEvent.xml index cddb9fe..ff842c0 100644 --- a/input/resources/structuredefinition/AccessAuditTrailEvent.xml +++ b/input/resources/structuredefinition/AccessAuditTrailEvent.xml @@ -37,12 +37,12 @@ <mapping> <identity value="ch-atc"/> <uri value="https://www.bag.admin.ch/bag/en/home.html"/> - <name value="Mapping to CH ATC"/> + <name value="CH ATC"/> </mapping> <kind value="resource"/> <abstract value="false"/> <type value="AuditEvent"/> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/AuditEvent"/> + <baseDefinition value="http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/ch-epr-fhir-auditevent"/> <derivation value="constraint"/> <differential> <element id="AuditEvent"> @@ -52,7 +52,7 @@ <key value="ch-atc-aae-1"/> <severity value="error"/> <human value="subtype needs to be fixed to ATC_LOG_READ"/> - <expression value="subtype.exists() and subtype.count()=1 and subtype[0].code='ATC_LOG_READ'"/> + <expression value="subtype.exists() and subtype.count()=1 and subtype.first().code='ATC_LOG_READ'"/> </constraint> </element> @@ -128,7 +128,7 @@ </type> <mapping> <identity value="ch-atc"/> - <map value="applicable identifier"/> + <map value="Identifier if applicable"/> </mapping> </element> <element id="AuditEvent.agent.name"> @@ -162,54 +162,22 @@ <rules value="open"/> </slicing> </element> - <!-- Slice Patient --> - <element id="AuditEvent.entity:Patient"> - <path value="AuditEvent.entity"/> - <sliceName value="Patient"/> - <short value="Patient"/> - <min value="1"/> - <max value="1"/> - <mapping> - <identity value="ch-atc"/> - <map value="Patient"/> - </mapping> - </element> - <element id="AuditEvent.entity:Patient.what.identifier"> - <path value="AuditEvent.entity.what.identifier"/> - <short value="Patient Id (EPR-SPID)"/> - <min value="1"/> - <max value="1"/> - <type> - <code value="Identifier"/> - </type> - <mapping> - <identity value="ch-atc"/> - <map value="EPR-SPID"/> - </mapping> - </element> - <element id="AuditEvent.entity:Patient.what.identifier.system"> - <path value="AuditEvent.entity.what.identifier.system"/> - <min value="1"/> - <fixedUri value="urn:oid:2.16.756.5.30.1.127.3.10.3"/> - </element> - <element id="AuditEvent.entity:Patient.type"> - <path value="AuditEvent.entity.type"/> - <min value="1"/> - </element> - <element id="AuditEvent.entity:Patient.type.code"> - <path value="AuditEvent.entity.type.code"/> - <min value="1"/> - <fixedCode value="1"/> - </element> - <element id="AuditEvent.entity:Patient.role"> - <path value="AuditEvent.entity.role"/> - <min value="1"/> - </element> - <element id="AuditEvent.entity:Patient.role.code"> - <path value="AuditEvent.entity.role.code"/> - <min value="1"/> - <fixedCode value="1"/> - </element> + <element id="AuditEvent.entity:Patient"> + <path value="AuditEvent.entity"/> + <sliceName value="Patient"/> + <min value="1"/> + <mapping> + <identity value="ch-atc"/> + <map value="Patient"/> + </mapping> + </element> + <element id="AuditEvent.entity:Patient.what.identifier"> + <path value="AuditEvent.entity.what.identifier"/> + <mapping> + <identity value="ch-atc"/> + <map value="EPR-SPID"/> + </mapping> + </element> </differential> </StructureDefinition> \ No newline at end of file diff --git a/input/resources/structuredefinition/DocumentAuditEvent.xml b/input/resources/structuredefinition/DocumentAuditEvent.xml index 1a8f213..a50cc25 100644 --- a/input/resources/structuredefinition/DocumentAuditEvent.xml +++ b/input/resources/structuredefinition/DocumentAuditEvent.xml @@ -40,12 +40,12 @@ <mapping> <identity value="ch-atc" /> <uri value="https://www.bag.admin.ch/bag/en/home.html" /> - <name value="Mapping to CH ATC" /> + <name value="CH ATC" /> </mapping> <kind value="resource" /> <abstract value="false" /> <type value="AuditEvent" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/AuditEvent" /> + <baseDefinition value="http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/ch-epr-fhir-auditevent" /> <derivation value="constraint" /> <differential> <element id="AuditEvent"> @@ -156,7 +156,7 @@ </binding> <mapping> <identity value="ch-atc"/> - <map value="role (PAT, HCP, ASS, REP, GRP, TCU, DADM)"/> + <map value="role (PAT, HCP, ASS, REP, TCU, DADM, GRP)"/> </mapping> </element> <element id="AuditEvent.agent.who.identifier"> @@ -168,7 +168,7 @@ </type> <mapping> <identity value="ch-atc"/> - <map value="applicable identifier"/> + <map value="Identifier if applicable"/> </mapping> </element> <element id="AuditEvent.agent.name"> @@ -207,9 +207,7 @@ <element id="AuditEvent.entity:Patient"> <path value="AuditEvent.entity"/> <sliceName value="Patient"/> - <short value="Patient" /> <min value="1"/> - <max value="1"/> <mapping> <identity value="ch-atc"/> <map value="Patient"/> @@ -217,40 +215,11 @@ </element> <element id="AuditEvent.entity:Patient.what.identifier"> <path value="AuditEvent.entity.what.identifier"/> - <short value="Patient Id (EPR-SPID)" /> - <min value="1"/> - <max value="1"/> - <type> - <code value="Identifier"/> - </type> <mapping> <identity value="ch-atc"/> <map value="EPR-SPID"/> </mapping> </element> - <element id="AuditEvent.entity:Patient.what.identifier.system"> - <path value="AuditEvent.entity.what.identifier.system"/> - <min value="1"/> - <fixedUri value="urn:oid:2.16.756.5.30.1.127.3.10.3"/> - </element> - <element id="AuditEvent.entity:Patient.type"> - <path value="AuditEvent.entity.type"/> - <min value="1"/> - </element> - <element id="AuditEvent.entity:Patient.type.code"> - <path value="AuditEvent.entity.type.code"/> - <min value="1"/> - <fixedCode value="1"/> - </element> - <element id="AuditEvent.entity:Patient.role"> - <path value="AuditEvent.entity.role"/> - <min value="1"/> - </element> - <element id="AuditEvent.entity:Patient.role.code"> - <path value="AuditEvent.entity.role.code"/> - <min value="1"/> - <fixedCode value="1"/> - </element> <!-- Slice Document --> <element id="AuditEvent.entity:Document"> diff --git a/input/resources/structuredefinition/HpdAuditEvent.xml b/input/resources/structuredefinition/HpdAuditEvent.xml index 956dc53..09270ac 100644 --- a/input/resources/structuredefinition/HpdAuditEvent.xml +++ b/input/resources/structuredefinition/HpdAuditEvent.xml @@ -40,12 +40,12 @@ <mapping> <identity value="ch-atc" /> <uri value="https://www.bag.admin.ch/bag/en/home.html" /> - <name value="Mapping to CH ATC" /> + <name value="CH ATC" /> </mapping> <kind value="resource" /> <abstract value="false" /> <type value="AuditEvent" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/AuditEvent" /> + <baseDefinition value="http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/ch-epr-fhir-auditevent" /> <derivation value="constraint" /> <differential> <element id="AuditEvent"> @@ -134,7 +134,7 @@ </type> <mapping> <identity value="ch-atc"/> - <map value="applicable identifier"/> + <map value="Identifier if applicable"/> </mapping> </element> <element id="AuditEvent.agent.name"> @@ -143,7 +143,7 @@ <min value="1"/> <mapping> <identity value="ch-atc"/> - <map value="Name of Notification Service"/> + <map value="Name"/> </mapping> </element> <element id="AuditEvent.agent.requestor"> @@ -157,6 +157,10 @@ <element id="AuditEvent.entity"> <path value="AuditEvent.entity"/> <slicing> + <discriminator> + <type value="value" /> + <path value="type.code" /> + </discriminator> <discriminator> <type value="value" /> <path value="role.code" /> @@ -169,9 +173,7 @@ <element id="AuditEvent.entity:Patient"> <path value="AuditEvent.entity"/> <sliceName value="Patient"/> - <short value="Patient" /> <min value="1"/> - <max value="1"/> <mapping> <identity value="ch-atc"/> <map value="Patient"/> @@ -179,36 +181,11 @@ </element> <element id="AuditEvent.entity:Patient.what.identifier"> <path value="AuditEvent.entity.what.identifier"/> - <short value="Patient Id (EPR-SPID)" /> - <min value="1"/> <mapping> <identity value="ch-atc"/> <map value="EPR-SPID"/> </mapping> </element> - <element id="AuditEvent.entity:Patient.what.identifier.system"> - <path value="AuditEvent.entity.what.identifier.system"/> - <min value="1"/> - <fixedUri value="urn:oid:2.16.756.5.30.1.127.3.10.3"/> - </element> - <element id="AuditEvent.entity:Patient.type"> - <path value="AuditEvent.entity.type"/> - <min value="1"/> - </element> - <element id="AuditEvent.entity:Patient.type.code"> - <path value="AuditEvent.entity.type.code"/> - <min value="1"/> - <fixedCode value="1"/> - </element> - <element id="AuditEvent.entity:Patient.role"> - <path value="AuditEvent.entity.role"/> - <min value="1"/> - </element> - <element id="AuditEvent.entity:Patient.role.code"> - <path value="AuditEvent.entity.role.code"/> - <min value="1"/> - <fixedCode value="1"/> - </element> <!-- Slice Healthcare professional --> <element id="AuditEvent.entity:HealthcareProfessional"> @@ -267,7 +244,7 @@ <min value="1"/> <mapping> <identity value="ch-atc"/> - <map value="Name of Healthcare Professional"/> + <map value="Name of HCP"/> </mapping> </element> @@ -291,7 +268,7 @@ <max value="1"/> <mapping> <identity value="ch-atc"/> - <map value="Identifier for Group (OID)"/> + <map value="Group OID"/> </mapping> </element> <element id="AuditEvent.entity:Group.type"> diff --git a/input/resources/structuredefinition/PolicyAuditEvent.xml b/input/resources/structuredefinition/PolicyAuditEvent.xml index 402a446..ff2c5fa 100644 --- a/input/resources/structuredefinition/PolicyAuditEvent.xml +++ b/input/resources/structuredefinition/PolicyAuditEvent.xml @@ -40,12 +40,12 @@ <mapping> <identity value="ch-atc" /> <uri value="https://www.bag.admin.ch/bag/en/home.html" /> - <name value="Mapping to CH ATC" /> + <name value="CH ATC" /> </mapping> <kind value="resource" /> <abstract value="false" /> <type value="AuditEvent" /> - <baseDefinition value="http://hl7.org/fhir/StructureDefinition/AuditEvent" /> + <baseDefinition value="http://fhir.ch/ig/ch-epr-fhir/StructureDefinition/ch-epr-fhir-auditevent" /> <derivation value="constraint" /> <differential> <element id="AuditEvent"> @@ -150,7 +150,7 @@ </type> <mapping> <identity value="ch-atc"/> - <map value="applicable identifier"/> + <map value="Identifier if applicable"/> </mapping> </element> <element id="AuditEvent.agent.name"> @@ -177,6 +177,10 @@ <type value="value" /> <path value="type.code" /> </discriminator> + <discriminator> + <type value="value" /> + <path value="role.code" /> + </discriminator> <rules value="open"/> </slicing> </element> @@ -185,9 +189,7 @@ <element id="AuditEvent.entity:Patient"> <path value="AuditEvent.entity"/> <sliceName value="Patient"/> - <short value="Patient" /> <min value="1"/> - <max value="1"/> <mapping> <identity value="ch-atc"/> <map value="Patient"/> @@ -195,40 +197,11 @@ </element> <element id="AuditEvent.entity:Patient.what.identifier"> <path value="AuditEvent.entity.what.identifier"/> - <short value="Patient Id (EPR-SPID)" /> - <min value="1"/> - <max value="1"/> - <type> - <code value="Identifier"/> - </type> <mapping> <identity value="ch-atc"/> <map value="EPR-SPID"/> </mapping> </element> - <element id="AuditEvent.entity:Patient.what.identifier.system"> - <path value="AuditEvent.entity.what.identifier.system"/> - <min value="1"/> - <fixedUri value="urn:oid:2.16.756.5.30.1.127.3.10.3"/> - </element> - <element id="AuditEvent.entity:Patient.type"> - <path value="AuditEvent.entity.type"/> - <min value="1"/> - </element> - <element id="AuditEvent.entity:Patient.type.code"> - <path value="AuditEvent.entity.type.code"/> - <min value="1"/> - <fixedCode value="1"/> - </element> - <element id="AuditEvent.entity:Patient.role"> - <path value="AuditEvent.entity.role"/> - <min value="1"/> - </element> - <element id="AuditEvent.entity:Patient.role.code"> - <path value="AuditEvent.entity.role.code"/> - <min value="1"/> - <fixedCode value="1"/> - </element> <!-- Slice Resource --> <element id="AuditEvent.entity:Resource"> @@ -252,7 +225,7 @@ </type> <mapping> <identity value="ch-atc"/> - <map value="identifier: GLN for HCP, OID for Group"/> + <map value="Identifier: GLN for HCP, OID for Group"/> </mapping> </element> <element id="AuditEvent.entity:Resource.type">