MedMij:Vprepub-2020.01/FHIR PDFA: verschil tussen versies

Uit informatiestandaarden
Ga naar: navigatie, zoeken
(MM-3500: Added known issue w.r.t. unused profiles)
(MM-5349: Add Known issues paragraph concerning differences between functional and technical implementation of PDF/A standard)
 
(5 tussenliggende versies door 4 gebruikers niet weergegeven)
Regel 20: Regel 20:
 
To achieve exchange of PDF/A files, MedMij adopts as much as possible from the Mobile access to Health Documents (MHD) profile from Integrating the Healthcare Enterprise (IHE) that defines a RESTful/HTTP interface to an [http://wiki.ihe.net/index.php/Cross-Enterprise_Document_Sharing XDS] environment using HL7 FHIR STU3 resources. The MHD profile is written to be content agnostic and as such is suitable for much more than PDF/A. For this use case, we have limited the scope to PDF/A. The next section summarizes MHD and contains references to IHE MHD specification. The following sections provides an adaptation of the MHD profile to specify exchange of PDF/A documents in a MedMij context.  
 
To achieve exchange of PDF/A files, MedMij adopts as much as possible from the Mobile access to Health Documents (MHD) profile from Integrating the Healthcare Enterprise (IHE) that defines a RESTful/HTTP interface to an [http://wiki.ihe.net/index.php/Cross-Enterprise_Document_Sharing XDS] environment using HL7 FHIR STU3 resources. The MHD profile is written to be content agnostic and as such is suitable for much more than PDF/A. For this use case, we have limited the scope to PDF/A. The next section summarizes MHD and contains references to IHE MHD specification. The following sections provides an adaptation of the MHD profile to specify exchange of PDF/A documents in a MedMij context.  
  
When implementing PDF/A, a minimum compliance must be assumed. That is, PDF/A-1 and PDF/A-b is also permitted within this. For more information, see the wiki page on this: https://en.wikipedia.org/wiki/PDF/A#Conformance_levels_and_versions
+
When implementing PDF/A, a minimum compliance must be assumed. That is, PDF/A-1 and PDF/A-b are also permitted within this. For more information, see the wiki page on this: https://en.wikipedia.org/wiki/PDF/A#Conformance_levels_and_versions
  
 
'''Note''': This implementation guide builds on the general guidelines described in the [[MedMij:Vprepub-2020.01/FHIR_IG#Use case overarching principles|use case overarching principles]].
 
'''Note''': This implementation guide builds on the general guidelines described in the [[MedMij:Vprepub-2020.01/FHIR_IG#Use case overarching principles|use case overarching principles]].
Regel 56: Regel 56:
 
|-
 
|-
 
| Patient
 
| Patient
| The user of a personal healthcare environment.
+
| The user of a personal healthcare environment
 
| PHR
 
| PHR
 
| Personal health record
 
| Personal health record
 
|[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/pdfa-clientcapabilities|nictiz.fhir.nl.stu3.zib2017|title=CapabilityStatement: Client}}
 
|[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/pdfa-clientcapabilities|nictiz.fhir.nl.stu3.zib2017|title=CapabilityStatement: Client}}
| PDFA FHIR Client requirements  
+
| PDF/A FHIR Client requirements  
 
|-
 
|-
 
| Healthcare Provider
 
| Healthcare Provider
Regel 67: Regel 67:
 
| Healthcare information system
 
| Healthcare information system
 
|[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/pdfa-servercapabilities|nictiz.fhir.nl.stu3.zib2017|title=CapabilityStatement: Server}}
 
|[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/pdfa-servercapabilities|nictiz.fhir.nl.stu3.zib2017|title=CapabilityStatement: Server}}
| PDFA FHIR Server requirements  
+
| PDF/A FHIR Server requirements  
 
|}  
 
|}  
 
<font size = "1">'''Table 1. Actors, systems and FHIR capability statements'''</font>
 
<font size = "1">'''Table 1. Actors, systems and FHIR capability statements'''</font>
Regel 107: Regel 107:
 
| Provide Document Bundle [ITI-65]
 
| Provide Document Bundle [ITI-65]
 
|}
 
|}
 +
 +
=Boundaries and Relationships=
 +
 +
=={{fhir|masterIdentifier}} versus {{fhir|identifier}}==
 +
Both the DocumentReference and DocumentManifest resources contain the elements {{fhir|.masterIdentifier}} and {{fhir|.identifier}}. These identifiers each have different usages.
 +
* The {{fhir|.masterIdentifier}} is assigned by the source of the document/manifest. There is always exactly one {{fhir|.masterIdentifier}} present for each DocumentReference/DocumentManifest resource (i.e. this element has cardinality 1..1 in both [[MedMij:Vprepub-2020.01/FHIR_PDFA#List_of_profiles|underlying profiles]]), and this identifier is used to uniquely identify that resource (and is often used in non-FHIR contexts for this purpose as well). In particular this identifier is version dependent, as each DocumentReference/DocumentManifest resource corresponds to a specific version of a document/manifest. Updating a document/manifest thus results in a new resource with a different {{fhir|.masterIdentifier}}.
 +
* All other identifiers associated with the document/manifest can be included in the resource as {{fhir|.identifier}}s, including the version independent ones. Thus such an identifier could occur in multiple DocumentReference/DocumentManifest resources, where each resource represents a different version of the same document/manifest; in that case it can be seen as a bundling mechanism for these different versions. <br>Note that {{fhir|DocumentManifest.identifier}} is mandatory (while {{fhir|DocumentReference.identifier}} isn't) without justification from the [https://decor.nictiz.nl/art-decor/decor-datasets--docs-?id=&effectiveDate=&conceptId=&conceptEffectiveDate= data set], since all 'Identification' (Dutch: 'Identificatie') concepts in the data set are mapped to masterIdentifier instead of identifier. This is a legacy of the IHE MHD specification.
  
 
=Use case: Find and retrieve existing PDF/A document(s)=
 
=Use case: Find and retrieve existing PDF/A document(s)=
Regel 130: Regel 137:
 
|-
 
|-
 
| Patient
 
| Patient
| The user of a personal healthcare environment.
+
| The user of a personal healthcare environment
 
| PHR
 
| PHR
 
| Personal health record
 
| Personal health record
 
|[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/pdfa-clientcapabilities|nictiz.fhir.nl.stu3.zib2017|title=CapabilityStatement: Client}}
 
|[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/pdfa-clientcapabilities|nictiz.fhir.nl.stu3.zib2017|title=CapabilityStatement: Client}}
| PDFA FHIR Client requirements  
+
| PDF/A FHIR Client requirements  
 
|-
 
|-
 
| Healthcare Provider
 
| Healthcare Provider
Regel 141: Regel 148:
 
| Healthcare information system
 
| Healthcare information system
 
|[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/pdfa-servercapabilities|nictiz.fhir.nl.stu3.zib2017|title=CapabilityStatement: Server}}
 
|[[Bestand: Verwijzing.png| 20px]] {{Simplifier|http://nictiz.nl/fhir/CapabilityStatement/pdfa-servercapabilities|nictiz.fhir.nl.stu3.zib2017|title=CapabilityStatement: Server}}
| PDFA FHIR Server requirements  
+
| PDF/A FHIR Server requirements  
 
|}  
 
|}  
 
<font size = "1">'''Table 1. Actors, systems and FHIR capability statements'''</font>
 
<font size = "1">'''Table 1. Actors, systems and FHIR capability statements'''</font>
Regel 202: Regel 209:
 
</pre>
 
</pre>
  
An example query to search for DocumentReferences which have status "''current''" and which are indexed/created after 01-01-2010:
+
An example query to search for DocumentReferences which have status {{term|current}} and which are indexed/created after 01-01-2010:
 
<pre>GET [base]/DocumentReference?status=current&indexed=ge2010-01-01</pre>
 
<pre>GET [base]/DocumentReference?status=current&indexed=ge2010-01-01</pre>
  
 
'''Search Parameters'''
 
'''Search Parameters'''
The Document Consumer shall include search parameter status. The Document Consumer may supply, and the Document Responder shall be capable of processing, all search parameters listed below. These search parameters are a selection of the defined search parameters by the IHE MHD profile. The IHE MHD profile contains more search parameters that were deemed to pose a disproportionate implemenation burden for Document Responders. The following subselection still allow Document Consumers with server-side filter capabilities while making this use case more implementable for Document Responders.
+
The Document Consumer shall include search parameter {{fhir|status}}. The Document Consumer may supply, and the Document Responder shall be capable of processing, all search parameters listed below. These search parameters are a selection of the defined search parameters by the IHE MHD profile. The IHE MHD profile contains more search parameters that were deemed to pose a disproportionate implementation burden for Document Responders. The following subselection still allow Document Consumers with server-side filter capabilities while making this use case more implementable for Document Responders.
  
 
{| class="wikitable"
 
{| class="wikitable"
Regel 219: Regel 226:
 
| style="font-weight: bold;" | Description
 
| style="font-weight: bold;" | Description
 
|-
 
|-
| <code>indexed</code>
+
| {{fhir|indexed}}
 
| date
 
| date
 
| When this document reference was created
 
| When this document reference was created
| <code>created</code>
+
| {{fhir|created}}
 
| date
 
| date
 
| When this document manifest created
 
| When this document manifest created
 
|-
 
|-
| <code>status</code>
+
| {{fhir|status}}
 
| token
 
| token
| current / superseded  
+
| {{term|current}} / {{term|superseded}}
| <code>status</code>
+
| {{fhir|status}}
 
| token
 
| token
| current / superseded
+
| {{term|current}} / {{term|superseded}}
 
|}
 
|}
  
 
====Response message====
 
====Response message====
The Document Responder shall process the query to discover the DocumentReference or DocumentManifest entries that match the search parameters given. The Document Responder returns an HTTP Status code appropriate to the processing as well as a Bundle including the matching DocumentReference or DocumentManifest Resources.  
+
The Document Responder shall process the query to discover the DocumentReference or DocumentManifest entries that match the search parameters given. The Document Responder returns an HTTP status code appropriate to the processing as well as a Bundle including the matching DocumentReference or DocumentManifest Resources.  
  
* The Document Responder shall place into the ''''DocumentReference.content.attachment.url'''' element a full URL that can be used by the Document Consumer to retrieve the document using Retrieve Document transaction.
+
* The Document Responder shall place into the {{fhir|DocumentReference.content.attachment.url}} element a full URL that can be used by the Document Consumer to retrieve the document using Retrieve Document transaction.
 
** The Document Responder shall only include references which are resolved through the Document Responder to maintain control over the authentication and authorization. The Document Responder shall only serve DocumentReference or DocumentManifest resources that contain a reference which the Document Consumer may resolve.
 
** The Document Responder shall only include references which are resolved through the Document Responder to maintain control over the authentication and authorization. The Document Responder shall only serve DocumentReference or DocumentManifest resources that contain a reference which the Document Consumer may resolve.
* The Document Responder shall return only PDF/A documents and shall place into the ''''DocumentReference.content.attachment.contentType'''' element the value 'application/pdf'.
+
* The Document Responder shall return only PDF/A documents and shall place into the {{fhir|DocumentReference.content.attachment.contentType}} element the value {{term|application/pdf}}.
  
 
===Retrieve PDF/A document===
 
===Retrieve PDF/A document===
After obtaining the location of the PDF/A document in the DocumentReference.content.attachment.url, the Document Consumer requests the document from the Document Responder. The Document Responder sequentially serves the PDF/A document to the Document Consumer. The context that was established in the initial request shall also apply when retrieving/serving the document contents.
+
After obtaining the location of the PDF/A document in the {{fhir|DocumentReference.content.attachment.url}}, the Document Consumer requests the document from the Document Responder. The Document Responder sequentially serves the PDF/A document to the Document Consumer. The context that was established in the initial request shall also apply when retrieving/serving the document contents.
  
 
====Request Message====
 
====Request Message====
Regel 250: Regel 257:
  
 
The Document Consumer may provide an HTTP Accept header, according to the semantics of the HTTP protocols (see RFC2616, Section 14.1). The only MIME type assured to be returned is the
 
The Document Consumer may provide an HTTP Accept header, according to the semantics of the HTTP protocols (see RFC2616, Section 14.1). The only MIME type assured to be returned is the
MIME type indicated in the 'DocumentReference.content.attachment.contentType'. Within MedMij this is set to 'application/pdf'. The HTTP If-Unmodified-Since header shall not be included in the GET request
+
MIME type indicated in the {{fhir|DocumentReference.content.attachment.contentType}}. Within MedMij this is set to {{term|application/pdf}}. The HTTP If-Unmodified-Since header shall not be included in the GET request.
  
 
====Response Message====
 
====Response Message====
The Document Responder shall process the request message. The Document Responder returns an HTTP Status code appropriate to the processing as well as the content of the requested PDF/A document in the HTTP message-body.  
+
The Document Responder shall process the request message. The Document Responder returns an HTTP status code appropriate to the processing as well as the content of the requested PDF/A document in the HTTP message body.  
  
The document may be placed inside a FHIR [http://hl7.org/fhir/STU3/binary.html Binary] resource if it is useful to handle pure binary content using the same framework as other resources. Binary resources behave slightly differently from all other resources on the RESTful API. Specifically, when a read request is made for the binary resource that doesn't explicitly specify the FHIR content types "application/fhir+xml" or "application/fhir+json", then the content should be returned using the content type stated in the resource. e.g. if the content type in the resource is "application/pdf", then the content should be returned as a PDF directly.[http://hl7.org/fhir/STU3/binary.html#rest]
+
The document may be placed inside a FHIR [http://hl7.org/fhir/STU3/binary.html Binary] resource if it is useful to handle pure binary content using the same framework as other resources. Binary resources behave slightly differently from all other resources on the RESTful API. Specifically, when a read request is made for the Binary resource that doesn't explicitly specify the FHIR content types {{term|application/fhir+xml}} or {{term|application/fhir+json}}, then the content should be returned using the content type stated in the resource. e.g. if the content type in the resource is {{term|application/pdf}}, then the content should be returned as a PDF directly.[http://hl7.org/fhir/STU3/binary.html#rest]
  
 
==List of profiles==
 
==List of profiles==
Regel 266: Regel 273:
 
* DocumentReference from Query with Minimal Metadata (canonical URL {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference|nictiz.fhir.nl.stu3.zib2017}})
 
* DocumentReference from Query with Minimal Metadata (canonical URL {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference|nictiz.fhir.nl.stu3.zib2017}})
 
* DocumentManifest (canonical URL {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.DocumentManifest|nictiz.fhir.nl.stu3.zib2017}})
 
* DocumentManifest (canonical URL {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.DocumentManifest|nictiz.fhir.nl.stu3.zib2017}})
 
{{IssueBox|The IHE profiles restrict the use of the .created element. This is a known issue and will be addressed in the R4 release of the profiles. This issue (CP-ITI-1100) can be found on the [http://wiki.ihe.net/index.php/Mobile_access_to_Health_Documents_(MHD)#FHIR_Implementation_Guide  IHE MHD wiki]. Therefore the .indexed element is used to capture creation time.}}
 
  
 
The complete set of used profiles for the response message is listed in the table below.
 
The complete set of used profiles for the response message is listed in the table below.
Regel 303: Regel 308:
 
| {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference|nictiz.fhir.nl.stu3.zib2017}}
 
| {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference|nictiz.fhir.nl.stu3.zib2017}}
 
|}
 
|}
 +
 +
{{IssueBox|The table above contains all IHE MHD based profiles applicable to this use case. Both the Bundle and List profiles aren't explicitly used within the PDF/A information standard and are, therefore, not listed.}}
  
 
=Use case: Send PDF/A document(s)=
 
=Use case: Send PDF/A document(s)=
Regel 330: Regel 337:
 
|}
 
|}
  
==Send PDFA==
+
==Send PDF/A==
 
===PHR: Request message===
 
===PHR: Request message===
When the patient (PHR) wants to send one or more PDF/A documents, it issues a send PDFA request message.
+
When the patient (PHR) wants to send one or more PDF/A documents, it issues a send PDF/A request message.
  
The PHR initiates a FHIR transaction using a create action by sending an HTTP POST request, composed of a FHIR Bundle resource containing one DocumentManifest resource, one or more DocumentReference resources, one or more Binary resources, one Patient resource, and zero or more Practitioner resources to the XIS recipient. References to the FHIR specification for the required transaction and POST requests are given in the [[#Interactions.2C_operations.2C_search_parameters|interactions, operations and search parameters]] section below.
+
The PHR initiates a FHIR transaction using a create action by sending an HTTP POST request, composed of a FHIR Bundle resource containing one DocumentManifest resource, one or more DocumentReference resources, one or more Binary resources, one Patient resource, and zero or more Practitioner resources to the XIS recipient. References to the FHIR specification for the required transaction and POST requests are given below.
  
 
The PHR executes an HTTP POST against the XIS's base endpoint as shown below.
 
The PHR executes an HTTP POST against the XIS's base endpoint as shown below.
Regel 347: Regel 354:
  
 
===XIS: Response message===
 
===XIS: Response message===
The target XIS returns an HTTP Status code appropriate to the processing outcome and returns a Bundle, of type transaction-response, that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry.
+
The target XIS returns an HTTP status code appropriate to the processing outcome and returns a Bundle, of type {{term|transaction-response}}, that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry.
  
The target XIS SHALL return a Bundle with type set to transaction-response that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry.
+
The target XIS SHALL return a Bundle with type set to {{term|transaction-response}} that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry.
  
 
A client may use the returned Bundle to track the outcomes of processing the entry, and the identities assigned to the resources by the server. Each entry element SHALL contain a response element which details the outcome of processing the entry - the HTTP status code, and the location and ETag header values, which are used for identifying and versioning the resources. In addition, a resource may be included in the entry, as specified by the Prefer header.
 
A client may use the returned Bundle to track the outcomes of processing the entry, and the identities assigned to the resources by the server. Each entry element SHALL contain a response element which details the outcome of processing the entry - the HTTP status code, and the location and ETag header values, which are used for identifying and versioning the resources. In addition, a resource may be included in the entry, as specified by the Prefer header.
Regel 383: Regel 390:
 
| style="background-color: white;"| Organization
 
| style="background-color: white;"| Organization
 
| style="background-color: white;"| {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-organization|nictiz.fhir.nl.stu3.zib2017}}
 
| style="background-color: white;"| {{Simplifier|http://fhir.nl/fhir/StructureDefinition/nl-core-organization|nictiz.fhir.nl.stu3.zib2017}}
|-
 
| style="background-color: white;"| -
 
| style="background-color: white;"| -
 
| style="background-color: white;"| Bundle
 
| style="background-color: white;"| {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.ProvideDocumentBundle|nictiz.fhir.nl.stu3.zib2017}}
 
 
|-
 
|-
 
| style="background-color: white;"| -
 
| style="background-color: white;"| -
Regel 398: Regel 400:
 
| style="background-color: white;"| DocumentReference
 
| style="background-color: white;"| DocumentReference
 
| style="background-color: white;"| {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference|nictiz.fhir.nl.stu3.zib2017}}
 
| style="background-color: white;"| {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference|nictiz.fhir.nl.stu3.zib2017}}
 +
|}
 +
 +
{{IssueBox|The table above contains all IHE MHD based profiles applicable to this use case. Both the Bundle and List profiles aren't explicitly used within the PDF/A information standard and are, therefore, not listed.}}
 +
 +
=Known issues=
 +
Several differences between the functional and technical implementation of the PDF/A information standard have been identified. These issues, together with the corresponding MedMij qualification restrictions, are outlined below and will be addressed in the next major release:
 +
 +
{| class="wikitable"
 +
|-style="background-color: #1F497D; color: white; font-weight: bold; "
 +
!style="background-color: #4AB8A7;; color: white; font-weight: bold; text-align:left; border: 1px solid black;"|Topic
 +
!style="background-color: #4AB8A7;; color: white; font-weight: bold; text-align:left; border: 1px solid black;"|Issue
 +
!style="background-color: #4AB8A7;; color: white; font-weight: bold; text-align:left; border: 1px solid black;"|MedMij Qualification
 +
!style="background-color: #4AB8A7;; color: white; font-weight: bold; text-align:left; border: 1px solid black;"|Proposed approach for next release
 +
|-style="vertical-align:top; background-color: #E3E3E3;
 +
|-
 +
| style="background-color: white;"| '''[https://nictiz.atlassian.net/browse/MM-3159 Author]'''
 +
| style="background-color: white;"| In the current version of the standard, the DocumentReference profile does not allow the patient to be the author.
 +
| style="background-color: white;"| Restricts 'Patient' from being the author.
 +
| style="background-color: white;"| Include this functionality.
 +
|-
 +
| style="background-color: white;" | '''[https://nictiz.atlassian.net/browse/MM-1071 Class]'''
 +
| style="background-color: white;" | For the {{fhir|.class}} element, LOINC is provided as an ''example'' of an accepted coding standard in the DocumentReference profile, and LOINC is also used in the qualification fixtures. However, this differs from  the coding standard specified in the Documentuitwisseling dataset in ART-DECOR, which ''requires'' SNOMED. Furthermore, in the field, codes are also being used interchangeably.
 +
| style="background-color: white;"| Accepts both SNOMED and LOINC codes.
 +
| style="background-color: white;"| Implement one coding standard/value set for {{fhir|.class}}.
 +
|-
 +
| style="background-color: white;"| '''[https://nictiz.atlassian.net/browse/MM-1071 Type]'''
 +
| style="background-color: white;"| Similar to {{fhir|.class}}, LOINC is provided as a ''preferred'' coding standard in the DocumentReference and DocumentManifest profiles, and LOINC is also used in the qualification fixtures. However, this differs from  the coding standard specified in the Documentuitwisseling dataset in ART-DECOR, which ''requires'' SNOMED. Furthermore, in the field codes are also being used interchangeably.
 +
| style="background-color: white;"| Accepts both SNOMED and LOINC codes.
 +
| style="background-color: white;"| Implement one coding standard/value set for {{fhir|.type}}
 +
|-
 +
| style="background-color: white;"| '''[https://nictiz.atlassian.net/browse/MM-2903 Created]'''
 +
| style="background-color: white;"| The {{fhir|.created}} element was removed from the DocumentReference profile. This issue (CP-ITI-1100) can be found on the [http://wiki.ihe.net/index.php/Mobile_access_to_Health_Documents_(MHD)#FHIR_Implementation_Guide  IHE MHD wiki]. However, this element remains in ART-DECOR.
 +
| style="background-color: white;"| Restricts the use of the {{fhir|.created}} element; the {{fhir|.indexed}} element is used to capture creation time.
 +
| style="background-color: white;"| Reintroduce the {{fhir|.created}} element in the DocumentReference profile.
 
|-
 
|-
 +
| style="background-color: white;"| '''[https://nictiz.atlassian.net/browse/MM-2903 DocStatus]'''
 +
| style="background-color: white;"| Like {{fhir|.created}}, this element was removed from the DocumentReference profile while it is still included in ART-DECOR.
 +
| style="background-color: white;"| Restricts the use of the {{fhir|.docStatus}} element.
 +
| style="background-color: white;"| Reintroduce the {{fhir|.docStatus}} element in the DocumentReference profile.
 +
|-
 +
| style="background-color: white;"| '''Status'''
 +
| style="background-color: white;"| "Status" is mentioned in the functional design, technical design, and qualification script, but it is functionally unclear what it refers to: {{fhir|.status}} (i.e., status of the document reference) listed in the DocumentReference profile or "Status" (i.e., status of the document itself) as used in ART-DECOR.
 
| style="background-color: white;"| -
 
| style="background-color: white;"| -
 +
| style="background-color: white;"| Reintroduce the {{fhir|.docStatus}} element in the DocumentReference profile and correct the materials for textual/conceptual inconsistencies.
 +
|-
 +
| style="background-color: white;"| '''[https://nictiz.atlassian.net/browse/MM-3227 Duplicates]'''
 +
| style="background-color: white;"| A system is currently in place to prevent the receipt of duplicate documents in the PHR. However, its implementation is optional, and several key rules are still lacking, resulting in unreliable outcomes. As a result, a Nictiz-wide project is underway to focus on the unique identification of objects and its implementation, ensuring that PHR users receive only unique documents.
 
| style="background-color: white;"| -
 
| style="background-color: white;"| -
| style="background-color: white;"| List
+
| style="background-color: white;"| In collaboration with Team Radar and the field, efforts will be made to improve the deduplication of documents.
| style="background-color: white;"| {{Simplifier|http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.List|nictiz.fhir.nl.stu3.zib2017}}
 
 
|}
 
|}
 
{{IssueBox|Even though the table above contains all profiles based on IHE MHD applicable to this use case, both the Bundle and List profiles aren't explicitly used within the PDF/A information standard, and are merely listed for completeness purposes.}}
 
  
 
=Release notes=
 
=Release notes=
 
Release notes can be found on the [[MedMij:Vprepub-2020.01/OntwerpPDFA#Release_notes| functional design page]].
 
Release notes can be found on the [[MedMij:Vprepub-2020.01/OntwerpPDFA#Release_notes| functional design page]].
 +
 +
{{MedMij:Sjabloon_Support}}

Huidige versie van 17 okt 2024 om 11:14


Naar medmij.nl
PDF/A
AfsprakenstelselFunctioneelTechnischAfspraken-Functioneel-Technisch

1 Introduction

Go to functional design

MedMij specifies the format PDF/A for exchanging unstructured documents containing health information. Forum Standaardisatie is a Dutch governmental organization that aims to stimulate the use of open standards. PDF/A is one of the standards that is recommended by Forum Standaardisatie. More information regarding PDF/A can be found here: https://www.forumstandaardisatie.nl/standaard/pdf-nen-iso.

To achieve exchange of PDF/A files, MedMij adopts as much as possible from the Mobile access to Health Documents (MHD) profile from Integrating the Healthcare Enterprise (IHE) that defines a RESTful/HTTP interface to an XDS environment using HL7 FHIR STU3 resources. The MHD profile is written to be content agnostic and as such is suitable for much more than PDF/A. For this use case, we have limited the scope to PDF/A. The next section summarizes MHD and contains references to IHE MHD specification. The following sections provides an adaptation of the MHD profile to specify exchange of PDF/A documents in a MedMij context.

When implementing PDF/A, a minimum compliance must be assumed. That is, PDF/A-1 and PDF/A-b are also permitted within this. For more information, see the wiki page on this: https://en.wikipedia.org/wiki/PDF/A#Conformance_levels_and_versions

Note: This implementation guide builds on the general guidelines described in the use case overarching principles.

1.1 IHE MHD specification

Mobile access to Health Documents (MHD) profile defines a simple HTTP RESTful interface to an XDS like environment, based on HL7 FHIR. It describes four transactions:

  1. submit submission sets, folders, new documents, and document metadata from the mobile device to a document receiver (Provide Document Bundle),
  2. find submission sets matching query parameters (Find Document Manifest),
  3. find document entries containing metadata based on query parameters (Find Document Reference),
  4. retrieve a copy of a specific document (Retrieve Document).

These transactions leverage the document content and format agnostic metadata concepts from XDS but simplify them for access by constrained environments such as mobile devices, or other resource-constrained systems. The MHD profile does not replace XDS. It can be used to allow mobile devices, or other resource-constrained systems, access to an XDS health information exchange.[1]

Wiki: Mobile acces to Health Document (MHD)

Document: MHD Supplement (Rev 2.4 July 24, 2018)

Additional Supplement: Appendix Z on HL7 FHIR (Rev 1.2 July 21, 2017)

2 Actors and transactions involved

Table 1 shows the relevant actors, systems and FHIR capability statements in a MedMij context. The capability statements demonstrate the minimum requirements to be conformant to the full MHD specifications.

Persons Systems FHIR Capability Statements
Name Description Name Description Name Description
Patient The user of a personal healthcare environment PHR Personal health record Verwijzing.png CapabilityStatement: Client PDF/A FHIR Client requirements
Healthcare Provider The user of a XIS XIS Healthcare information system Verwijzing.png CapabilityStatement: Server PDF/A FHIR Server requirements

Table 1. Actors, systems and FHIR capability statements

Table 2 shows the MHD actors and transactions in perspective of the systems used in a MedMij context.

Person System MHD Actors MHD Transactions
Patient
PHR
Document Consumer Find Document Manifests [ITI-66]
Find Document References [ITI-67]
Retrieve Document [ITI-68]
Document Source Provide Document Bundle [ITI-65]
Healthcare provider
XIS
Document Responder Find Document Manifests [ITI-66]
Find Document References [ITI-67]
Retrieve Document [ITI-68]
Document Recipient Provide Document Bundle [ITI-65]

3 Boundaries and Relationships

3.1 masterIdentifier versus identifier

Both the DocumentReference and DocumentManifest resources contain the elements .masterIdentifier and .identifier. These identifiers each have different usages.

  • The .masterIdentifier is assigned by the source of the document/manifest. There is always exactly one .masterIdentifier present for each DocumentReference/DocumentManifest resource (i.e. this element has cardinality 1..1 in both underlying profiles), and this identifier is used to uniquely identify that resource (and is often used in non-FHIR contexts for this purpose as well). In particular this identifier is version dependent, as each DocumentReference/DocumentManifest resource corresponds to a specific version of a document/manifest. Updating a document/manifest thus results in a new resource with a different .masterIdentifier.
  • All other identifiers associated with the document/manifest can be included in the resource as .identifiers, including the version independent ones. Thus such an identifier could occur in multiple DocumentReference/DocumentManifest resources, where each resource represents a different version of the same document/manifest; in that case it can be seen as a bundling mechanism for these different versions.
    Note that DocumentManifest.identifier is mandatory (while DocumentReference.identifier isn't) without justification from the data set, since all 'Identification' (Dutch: 'Identificatie') concepts in the data set are mapped to masterIdentifier instead of identifier. This is a legacy of the IHE MHD specification.

4 Use case: Find and retrieve existing PDF/A document(s)

Go to Afsprakenstelsel

This FHIR implementation guide assumes that the PHR system is able to make a connection to the right XIS that contains the patient's information. It does not provide information on finding the right XIS nor does it provide information about security. Moreover, each transaction is performed in the context of a specific authenticated patient, for whose context (token) has been established using the authentication mechanisms described in the 'Afsprakenstelsel'. Each XIS Gateway is required to perform filtering based on the patient associated with the context for the request, so only the records associated with the authenticated patient are returned. For this reason, search parameters should not be included for patient identification.

4.1 Introduction

This section summarizes the IHE MHD profile to find and retrieve PDF/A documents in a MedMij context.

4.2 Actors and transactions involved

Table 1 shows the relevant actors, systems and FHIR capability statements in a MedMij context. The capability statements demonstrate the minimum requirements to be conformant to the full MHD specifications.

Persons Systems FHIR Capability Statements
Name Description Name Description Name Description
Patient The user of a personal healthcare environment PHR Personal health record Verwijzing.png CapabilityStatement: Client PDF/A FHIR Client requirements
Healthcare Provider The user of a XIS XIS Healthcare information system Verwijzing.png CapabilityStatement: Server PDF/A FHIR Server requirements

Table 1. Actors, systems and FHIR capability statements

Table 2 shows the MHD actors and transactions in perspective of the systems used in a MedMij context.

Person System MHD Actors MHD Transactions Optionallity
Patient
PHR
Document Consumer Find Document Manifest Optional
Find Document Reference Required
Retrieve Document Required
Healthcare provider
XIS
Document Responder Find Document Manifest Optional
Find Document Reference Required
Retrieve Document Required

Table 2. MHD actors and transactions in perspective of systems in a MedMij context

Implementation of the 'Find Document Reference' and 'Retrieve Document' transactions are required. The 'Find Document Manifest' transaction is optional for both the Document Consumer and Document Responder.

4.3 Find and retrieve existing PDF/A document(s)

4.3.1 Find PDF/A or PDF/A collection

Discovery of PDF/A documents is done with the MHD defined transaction 'Find Document Reference' or 'Find Document Manifest.' The Find Document Reference retrieves FHIR DocumentReference Resources that represents a single reference to document per resource, for example, one PDF/A file. The Find Document Manifest retrieves FHIR DocumentManifest Resources. A DocumentManifest Resource gathers a set of DocumentReference Resources into a single package together with metadata that applies to the collection.

The Document Consumer requests DocumentReference or DocumentManifest Resources, matching a set of criteria, from the Document Responder. The Document Responder returns DocumentReference or DocumentManifest Resources that match the search criteria provided by the Document Consumer.

4.3.1.1 Request message

Search

The Document Consumer executes an HTTP GET conform to the FHIR RESTful and search specification. A search query would have the following format.

GET [base]/DocumentReference?status=[status]{&[parameters]}
GET [base]/DocumentManifest?status=[status]{&[parameters]}

An example query to search for DocumentReferences which have status current and which are indexed/created after 01-01-2010:

GET [base]/DocumentReference?status=current&indexed=ge2010-01-01

Search Parameters The Document Consumer shall include search parameter status. The Document Consumer may supply, and the Document Responder shall be capable of processing, all search parameters listed below. These search parameters are a selection of the defined search parameters by the IHE MHD profile. The IHE MHD profile contains more search parameters that were deemed to pose a disproportionate implementation burden for Document Responders. The following subselection still allow Document Consumers with server-side filter capabilities while making this use case more implementable for Document Responders.

DocumentReference DocumentManifest
Name Type Description Name Type Description
indexed date When this document reference was created created date When this document manifest created
status token current / superseded status token current / superseded

4.3.1.2 Response message

The Document Responder shall process the query to discover the DocumentReference or DocumentManifest entries that match the search parameters given. The Document Responder returns an HTTP status code appropriate to the processing as well as a Bundle including the matching DocumentReference or DocumentManifest Resources.

  • The Document Responder shall place into the DocumentReference.content.attachment.url element a full URL that can be used by the Document Consumer to retrieve the document using Retrieve Document transaction.
    • The Document Responder shall only include references which are resolved through the Document Responder to maintain control over the authentication and authorization. The Document Responder shall only serve DocumentReference or DocumentManifest resources that contain a reference which the Document Consumer may resolve.
  • The Document Responder shall return only PDF/A documents and shall place into the DocumentReference.content.attachment.contentType element the value application/pdf.

4.3.2 Retrieve PDF/A document

After obtaining the location of the PDF/A document in the DocumentReference.content.attachment.url, the Document Consumer requests the document from the Document Responder. The Document Responder sequentially serves the PDF/A document to the Document Consumer. The context that was established in the initial request shall also apply when retrieving/serving the document contents.

4.3.2.1 Request Message

This message is an HTTP GET request to retrieve the document. See an example below.

GET http://example:9556/svc/fhir/Binary/1e404af3-077f-4bee-b7a6-a9be97e1ce32

The Document Consumer may provide an HTTP Accept header, according to the semantics of the HTTP protocols (see RFC2616, Section 14.1). The only MIME type assured to be returned is the MIME type indicated in the DocumentReference.content.attachment.contentType. Within MedMij this is set to application/pdf. The HTTP If-Unmodified-Since header shall not be included in the GET request.

4.3.2.2 Response Message

The Document Responder shall process the request message. The Document Responder returns an HTTP status code appropriate to the processing as well as the content of the requested PDF/A document in the HTTP message body.

The document may be placed inside a FHIR Binary resource if it is useful to handle pure binary content using the same framework as other resources. Binary resources behave slightly differently from all other resources on the RESTful API. Specifically, when a read request is made for the Binary resource that doesn't explicitly specify the FHIR content types application/fhir+xml or application/fhir+json, then the content should be returned using the content type stated in the resource. e.g. if the content type in the resource is application/pdf, then the content should be returned as a PDF directly.[2]

4.4 List of profiles

IHE has defined profiles and other conformance resources applicable to this use case. The FHIR Implementation Guide on the IHE MHD wiki lists these conformance resources.

Due to errors encountered when creating the send use case, that IHE did not intend to fix in STU3, Nictiz has fixed the errors and re-published the IHE.MHD profiles in the Nictiz namespace. Note that IHE originally created two profiles, one for Query DocumentReference and one for Provide DocumentReference which are identical to each other. For usability purposes, these two profiles have been merged.

Find and retrieve existing PDF/A document transaction uses the following profiles:

The complete set of used profiles for the response message is listed in the table below.


Zib name NL Zib name EN FHIR Resource
Patient Patient Patient http://fhir.nl/fhir/StructureDefinition/nl-core-patient
Zorgverlener HealthProfessional Practitioner http://fhir.nl/fhir/StructureDefinition/nl-core-practitioner
Zorgaanbieder HealthcareProvider Organization http://fhir.nl/fhir/StructureDefinition/nl-core-organization
- - DocumentManifest http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.DocumentManifest
- - DocumentReference http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference

5 Use case: Send PDF/A document(s)

5.1 Introduction

Go to Afsprakenstelsel

This section summarizes the IHE MHD profile to Send PDF/A document(s) in a MedMij context.

This FHIR implementation guide assumes that the PHR system is able to make a connection to the right XIS that contains the patient's information. It does not provide information on finding the right XIS nor does it provide information about security. Moreover, each transaction is performed in the context of a specific authenticated patient, for whose context (token) has been established using the authentication mechanisms described in the 'Afsprakenstelsel'. Each XIS Gateway is required to perform filtering based on the patient associated with the context for the request, so only the records associated with the authenticated patient are returned. For this reason, search parameters should not be included for patient identification.

5.2 Actors

Person System MHD Actors MHD Transactions
Patient PHR Document Source Provide Document Bundle [ITI-65]
Healthcare provider XIS Document Recipient Provide Document Bundle [ITI-65]

5.3 Send PDF/A

5.3.1 PHR: Request message

When the patient (PHR) wants to send one or more PDF/A documents, it issues a send PDF/A request message.

The PHR initiates a FHIR transaction using a create action by sending an HTTP POST request, composed of a FHIR Bundle resource containing one DocumentManifest resource, one or more DocumentReference resources, one or more Binary resources, one Patient resource, and zero or more Practitioner resources to the XIS recipient. References to the FHIR specification for the required transaction and POST requests are given below.

The PHR executes an HTTP POST against the XIS's base endpoint as shown below.

POST [base]

Read more:

5.3.2 XIS: Response message

The target XIS returns an HTTP status code appropriate to the processing outcome and returns a Bundle, of type transaction-response, that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry.

The target XIS SHALL return a Bundle with type set to transaction-response that contains one entry for each entry in the request, in the same order, with the outcome of processing the entry.

A client may use the returned Bundle to track the outcomes of processing the entry, and the identities assigned to the resources by the server. Each entry element SHALL contain a response element which details the outcome of processing the entry - the HTTP status code, and the location and ETag header values, which are used for identifying and versioning the resources. In addition, a resource may be included in the entry, as specified by the Prefer header.

5.4 List of profiles

IHE has defined profiles applicable to this use case. Although the IHE MHD Profile text (the published PDF) is Normative these conformance resources are labelled as Informative. Not all IHE MHD profiles are implementable as-is for the send use case because of errors that IHE does not intend to resolve in FHIR STU3, but instead, require updating to FHIR R4. MedMij is not ready upgrading to FHIR R4 for just this use case and has implemented the necessary fixes in the IHE FHIR STU3 profiles to support this use case. The IHE MHD profiles 'IHE.MHD.DocumentManifest' and 'IHE.MHD.Minimal.ProvideDocumentBundle' are therefore copied, adjusted for the known issues and released in the Nictiz namespace. The table below shows the IHE MHD profiles used for the Providing Document Bundle transaction and the relevant HCIM profiles. Note that IHE originally created two profiles on DocumentReference, one for Query DocumentReference and one for Provide DocumentReference which are identical to each other. For usability purposes, these two profiles have been merged.


Zib name NL Zib name EN FHIR Resource URL profile
Patient Patient Patient http://fhir.nl/fhir/StructureDefinition/nl-core-patient
Zorgverlener HealthProfessional Practitioner http://fhir.nl/fhir/StructureDefinition/nl-core-practitioner
PractitionerRole http://fhir.nl/fhir/StructureDefinition/nl-core-practitionerrole
Zorgaanbieder HealthcareProvider Organization http://fhir.nl/fhir/StructureDefinition/nl-core-organization
- - DocumentManifest http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.DocumentManifest
- - DocumentReference http://nictiz.nl/fhir/StructureDefinition/IHE.MHD.Minimal.DocumentReference

6 Known issues

Several differences between the functional and technical implementation of the PDF/A information standard have been identified. These issues, together with the corresponding MedMij qualification restrictions, are outlined below and will be addressed in the next major release:

Topic Issue MedMij Qualification Proposed approach for next release
Author In the current version of the standard, the DocumentReference profile does not allow the patient to be the author. Restricts 'Patient' from being the author. Include this functionality.
Class For the .class element, LOINC is provided as an example of an accepted coding standard in the DocumentReference profile, and LOINC is also used in the qualification fixtures. However, this differs from the coding standard specified in the Documentuitwisseling dataset in ART-DECOR, which requires SNOMED. Furthermore, in the field, codes are also being used interchangeably. Accepts both SNOMED and LOINC codes. Implement one coding standard/value set for .class.
Type Similar to .class, LOINC is provided as a preferred coding standard in the DocumentReference and DocumentManifest profiles, and LOINC is also used in the qualification fixtures. However, this differs from the coding standard specified in the Documentuitwisseling dataset in ART-DECOR, which requires SNOMED. Furthermore, in the field codes are also being used interchangeably. Accepts both SNOMED and LOINC codes. Implement one coding standard/value set for .type
Created The .created element was removed from the DocumentReference profile. This issue (CP-ITI-1100) can be found on the IHE MHD wiki. However, this element remains in ART-DECOR. Restricts the use of the .created element; the .indexed element is used to capture creation time. Reintroduce the .created element in the DocumentReference profile.
DocStatus Like .created, this element was removed from the DocumentReference profile while it is still included in ART-DECOR. Restricts the use of the .docStatus element. Reintroduce the .docStatus element in the DocumentReference profile.
Status "Status" is mentioned in the functional design, technical design, and qualification script, but it is functionally unclear what it refers to: .status (i.e., status of the document reference) listed in the DocumentReference profile or "Status" (i.e., status of the document itself) as used in ART-DECOR. - Reintroduce the .docStatus element in the DocumentReference profile and correct the materials for textual/conceptual inconsistencies.
Duplicates A system is currently in place to prevent the receipt of duplicate documents in the PHR. However, its implementation is optional, and several key rules are still lacking, resulting in unreliable outcomes. As a result, a Nictiz-wide project is underway to focus on the unique identification of objects and its implementation, ensuring that PHR users receive only unique documents. - In collaboration with Team Radar and the field, efforts will be made to improve the deduplication of documents.

7 Release notes

Release notes can be found on the functional design page.


8 Support

For questions and change requests regarding the information on this page, please create a ticket in Servicedesk Portal.