Différences entre les versions de « Transaction examples »
(Add "update Document") |
|||
Ligne 260 : | Ligne 260 : | ||
"resourceType": "Binary", | "resourceType": "Binary", | ||
"contentType": "text/xml", | "contentType": "text/xml", | ||
"data": "<Base64 | "data": "<Base64 encoded file content>" | ||
}, | }, | ||
"request": { | "request": { | ||
Ligne 410 : | Ligne 410 : | ||
} | } | ||
} | } | ||
}, | |||
"request": { | |||
"method": "POST", | |||
"url": "urn:uuid:5604f114-bf96-4c12-8dac-25715a05cf3f" | |||
} | |||
} | |||
] | |||
} | |||
=== Update a document === | |||
You can not directly update a document. You will to replace it, by uploading a new document with a reference to the other document it replaces. The reference points to the Resource ID of the document to replace (keep in mind here, this is not the temporary ID you assigned to it in the ITI-65 Provide Document Bundle, but the ID assigned by the server. | |||
So the Document Bundle is the same as in Upload a Document, with the difference of the additional relatesTo reference in the DocumentReference resource: | |||
<code>POST https://test.ahdis.ch/mag-bfh/fhir</code> | |||
{ | |||
"id": "2-7-BundleProvideDocument", | |||
"resourceType": "Bundle", | |||
"meta": { | |||
"profile": [ | |||
"http://ihe.net/fhir/StructureDefinition/IHE_MHD_Provide_Minimal_DocumentBundle" | |||
] | |||
}, | |||
"type": "transaction", | |||
"entry": [ | |||
{ | |||
"fullUrl": "urn:uuid:d8d1fe44-07e9-4a84-985f-fde97d77d54b", | |||
"resource": { | |||
"resourceType": "Binary", | |||
... | |||
}, | |||
"request": { | |||
"method": "POST", | |||
"url": "urn:uuid:d8d1fe44-07e9-4a84-985f-fde97d77d54b" | |||
} | |||
}, | |||
{ | |||
"fullUrl": "urn:uuid:68a928c0-df48-4743-a291-bfb0609bbddc", | |||
"resource": { | |||
"resourceType": "DocumentManifest", | |||
... | |||
}, | |||
"request": { | |||
"method": "POST", | |||
"url": "urn:uuid:68a928c0-df48-4743-a291-bfb0609bbddc" | |||
} | |||
}, | |||
{ | |||
"fullUrl": "urn:uuid:50383ae5-49e5-4dea-b0e6-660cb9e7b91f", | |||
"resource": { | |||
"resourceType": "DocumentReference", | |||
... | |||
''' "relatesTo": [ | |||
''' { | |||
''' "code": "replaces", | |||
''' "target": { | |||
''' "reference": "5d7b180a-1407-48e6-99c2-141a9fa303b7"''' // this is the resource ID of the document reference to replace | |||
''' } | |||
''' } | |||
''' ] | |||
}, | }, | ||
"request": { | "request": { |
Version du 13 avril 2022 à 07:40
This page lists examples of transactions using the Mobile Access Gateway to access the EPD Playground.
Create Patient
Profile | Patient Master Identity Registry | (PMIR) |
Transaction | Mobile Patient Identity Feed | [ITI-93] |
SOAP Transaction | Patient Identity Feed HL7 V3 | [ITI-44] |
The following example creates a patient ALAN ALPHA (which, by the way, also exists in the gazelle reference environment):
POST https://test.ahdis.ch/mag-bfh/fhir/$process-message { "resourceType": "Bundle", "type": "message", "entry": [ { "fullUrl": "http://example.com/fhir/MessageHeader/1", "resource": { "resourceType": "MessageHeader", "id": "1", "eventUri": "urn:ihe:iti:pmir:2019:patient-feed", "source": { "endpoint": "http://example.com/patientSource" }, "focus": [ { "reference": "Patient/123" } ], "destination": [ { "endpoint": "http://example.com/patientEndpoint" } ] } }, { "fullUrl": "http://example.com/fhir/Patient/123", "resource": { "resourceType": "Patient", "id": "123", "contained": [ { "resourceType": "Organization", "id": "1", "identifier": [ { "system": "urn:oid:2.16.756.5.30.1.178.1.1", "value": "Klinik H\u00f6heweg" } ], "name": "Klinik H\u00f6heweg", "contact": [ { "name": { "family": "Test", "given": [ "Hugo" ] } } ] } ], "identifier": [ { "system": "urn:oid:2.16.756.5.30.1.178.1.1", "value": "PATIENT1", "assigner": { "display": "Klinik H\u00f6heweg" } }, { "system": "urn:oid:2.16.756.5.30.1.127.3.10.3", "value": "DEMO" } ], "name": [ { "family": "ALPHA", "given": [ "ALAN" ] } ], "gender": "male", "birthDate": "1938-02-24", "address": [ { "line": "1_PINETREE", "city": "WEBSTER", "state": "MD", "postalCode": "63119" } ], "managingOrganization": { "reference": "#1" } }, "request": { "method": "POST" } } ] }
- The id in the Patient resource (e.g. "123") does not matter, but has to match the id linked in the Messageheader (focus.reference: "Patient/123").
- The creating organization must be present as a contained resource Organization and linked from the Patient resource under managingOrganization ("#1").
- In the point identifier the local patient-id in the creating organization (e.g. the "Klinik Höheweg" with OID 2.16.756.5.30.1.178.1.1) as well as the EPR-SPID (with the official OID 2.16.756.5.30.1.127.3.10.3) are listed.
Search patient
Notice: the newest PIXm specifications don't allow anymore to query all patient id's at once. A "target system" has to be given in the query.
Search MPI Identifier using the EPR-SPID (PIXm)
- OID of the EPD Playground's MPI: 1.1.1.99.1
- OID of the EPR-SPID: 2.16.756.5.30.1.127.3.10.3
Which should get you the following response body:
{ "resourceType": "Parameters", "parameter": [ { "name": "targetIdentifier", "valueIdentifier": { "system": "urn:oid:1.1.1.99.1", "value": "0f5a8034-3c8a-4796-bd39-d3ea877a4155" } } ] }
Search local id using the EPR-SPID (PIXm)
- OID of the Klinik Höheweg: 2.16.756.5.30.1.178.1.1
- OID of the EPR-SPID: 2.16.756.5.30.1.127.3.10.3
Which should get you the following response body:
{ "resourceType": "Parameters", "parameter": [ { "name": "targetIdentifier", "valueIdentifier": { "system": "urn:oid:2.16.756.5.30.1.178.1.1", "value": "PATIENT1" } } ] }
Search patient by any identifier (PDQm)
When known, a patient can be searched by any identifier, like the EPR-SPID, the communitys MPI or a local id (e.g. from a primary system):
- EPR-SPID:
GET https://test.ahdis.ch/mag-bfh/fhir/Patient?identifier=2.16.756.5.30.1.127.3.10.3|DEMO
- MPI:
GET https://test.ahdis.ch/mag-bfh/fhir/Patient?identifier=1.1.1.99.1|0f5a8034-3c8a-4796-bd39-d3ea877a4155
- local id:
GET https://test.ahdis.ch/mag-bfh/fhir/Patient?identifier=2.16.756.5.30.1.178.1.1|PATIENT1
This returns a FHIR Bundle:
{ "resourceType": "Bundle", "id": "47b0e100-5475-45e3-9dd2-0ae422bdbed9", "meta": { "lastUpdated": "2021-03-25T10:28:44.250+00:00" }, "type": "searchset", "total": 1, "link": [ { "relation": "self", "url": "https://test.ahdis.ch/mag-bfh/fhir/Patient?identifier=2.16.756.5.30.1.127.3.10.3%7CDEMO" } ], "entry": [ { "fullUrl": "https://test.ahdis.ch/mag-bfh/fhir/Patient/1.1.1.99.1-0f5a8034-3c8a-4796-bd39-d3ea877a4155", "resource": { "resourceType": "Patient", "id": "1.1.1.99.1-0f5a8034-3c8a-4796-bd39-d3ea877a4155", "identifier": [ { "system": "urn:oid:1.1.1.99.1", "value": "0f5a8034-3c8a-4796-bd39-d3ea877a4155" } ], "active": true, "name": [ { "family": "ALPHA", "given": [ "ALAN" ] } ], "gender": "male", "birthDate": "1938-02-24", "address": [ { "city": "WEBSTER", "state": "MD", "postalCode": "63119" } ] } } ] }
Upload a document
Profile | Mobile Access to Health Documents | (MHD) |
Transaction | Provide Document Bundle | [ITI-65] |
SOAP Transaction | Provide and Register Document Set | [ITI-41] |
The following example creates a document for the patient ALAN ALPHA:
POST https://test.ahdis.ch/mag-bfh/fhir
{ "id": "2-7-BundleProvideDocument", "resourceType": "Bundle", "meta": { "profile": [ "http://ihe.net/fhir/StructureDefinition/IHE_MHD_Provide_Minimal_DocumentBundle" ] }, "type": "transaction", "entry": [ { "fullUrl": "urn:uuid:d8d1fe44-07e9-4a84-985f-fde97d77d54b", "resource": { "resourceType": "Binary", "contentType": "text/xml", "data": "<Base64 encoded file content>" }, "request": { "method": "POST", "url": "urn:uuid:d8d1fe44-07e9-4a84-985f-fde97d77d54b" } }, { "fullUrl": "urn:uuid:68a928c0-df48-4743-a291-bfb0609bbddc", "resource": { "resourceType": "DocumentManifest", "masterIdentifier": { "value": "urn:oid:1.3.6.1.4.1.12559.11.13.2.6.2955" }, "identifier": [ { "system": "urn:ietf:rfc:3986", "value": "urn:uuid:8c3e40b2-3cf9-4980-b4fb-cc84ba8a181a" } ], "status": "current", "type": { "coding": [ { "system": "http://snomed.info/sct", "code": "71388002", "display": "Procedure (procedure)" } ] }, "subject": { "reference": "https://test.ahdis.ch/mag-bfh/fhir/Patient/1.1.1.99.1-0f5a8034-3c8a-4796-bd39-d3ea877a4155" }, "content": [ { "reference": "urn:uuid:50383ae5-49e5-4dea-b0e6-660cb9e7b91f" } ], "created": "2020-06-29T12:01:30+00:00", "source": "urn:oid:1.3.6.1.4.1.12559.11.13.2.5", "description": "Hello World example neu" }, "request": { "method": "POST", "url": "urn:uuid:68a928c0-df48-4743-a291-bfb0609bbddc" } }, { "fullUrl": "urn:uuid:50383ae5-49e5-4dea-b0e6-660cb9e7b91f", "resource": { "resourceType": "DocumentReference", "contained": [ { "resourceType": "Patient", "id": "1", "identifier": [ { "use": "official", "system": "1.1.1.99.1", "value": "0f5a8034-3c8a-4796-bd39-d3ea877a4155" } ] } ], "masterIdentifier": { "value": "urn:oid:1.3.6.1.4.1.12559.11.13.2.1.2956" }, "identifier": [ { "use": "official", "system": "urn:ietf:rfc:3986", "value": "urn:uuid:50383ae5-49e5-4dea-b0e6-660cb9e7b91f" } ], "status": "current", "type": { "coding": [ { "system": "http://snomed.info/sct", "code": "721912009", "display": "Medication summary document (record artifact)" } ] }, "category": [ { "coding": [ { "system": "http://snomed.info/sct", "code": "422735006", "display": "Summary clinical document (record artifact)" } ] } ], "subject": { "reference": "https://test.ahdis.ch/mag-bfh/fhir/Patient/1.1.1.99.1-0f5a8034-3c8a-4796-bd39-d3ea877a4155" }, "source": "urn:oid:1.3.6.1.4.1.12559.11.13.2.5", "date": "2020-06-29T11:58:00.000+00:00", "description": "2-7-MedicationCard", "securityLabel": [ { "coding": [ { "system": "http://snomed.info/sct", "code": "17621005", "display": "Normal (qualifier value)" } ] } ], "content": [ { "attachment": { "contentType": "text/xml", "language": "de-CH", "url": "urn:uuid:d8d1fe44-07e9-4a84-985f-fde97d77d54b", "size": 309219 }, "format": { "system": "urn:oid:1.3.6.1.4.1.19376.1.2.3", "code": "urn:ihe:pharm:pml:2013", "display": "Community Medication List" } } ], "context": { "facilityType": { "coding": [ { "system": "http://snomed.info/sct", "code": "264358009", "display": "General practice premises (environment)" } ] }, "practiceSetting": { "coding": [ { "system": "http://snomed.info/sct", "code": "394802001", "display": "General medicine (qualifier value)" } ] }, "sourcePatientInfo": { "reference": "#1" } } }, "request": { "method": "POST", "url": "urn:uuid:5604f114-bf96-4c12-8dac-25715a05cf3f" } } ] }
Update a document
You can not directly update a document. You will to replace it, by uploading a new document with a reference to the other document it replaces. The reference points to the Resource ID of the document to replace (keep in mind here, this is not the temporary ID you assigned to it in the ITI-65 Provide Document Bundle, but the ID assigned by the server.
So the Document Bundle is the same as in Upload a Document, with the difference of the additional relatesTo reference in the DocumentReference resource:
POST https://test.ahdis.ch/mag-bfh/fhir
{ "id": "2-7-BundleProvideDocument", "resourceType": "Bundle", "meta": { "profile": [ "http://ihe.net/fhir/StructureDefinition/IHE_MHD_Provide_Minimal_DocumentBundle" ] }, "type": "transaction", "entry": [ { "fullUrl": "urn:uuid:d8d1fe44-07e9-4a84-985f-fde97d77d54b", "resource": { "resourceType": "Binary", ... }, "request": { "method": "POST", "url": "urn:uuid:d8d1fe44-07e9-4a84-985f-fde97d77d54b" } }, { "fullUrl": "urn:uuid:68a928c0-df48-4743-a291-bfb0609bbddc", "resource": { "resourceType": "DocumentManifest", ... }, "request": { "method": "POST", "url": "urn:uuid:68a928c0-df48-4743-a291-bfb0609bbddc" } }, { "fullUrl": "urn:uuid:50383ae5-49e5-4dea-b0e6-660cb9e7b91f", "resource": { "resourceType": "DocumentReference", ... "relatesTo": [ { "code": "replaces", "target": { "reference": "5d7b180a-1407-48e6-99c2-141a9fa303b7" // this is the resource ID of the document reference to replace } } ] }, "request": { "method": "POST", "url": "urn:uuid:5604f114-bf96-4c12-8dac-25715a05cf3f" } } ] }
Search and retrieve a document
Search for DocumentReferences
A FHIR search for DocumentReferences returns a Bundle of DocumentReference resources. Each DocumentReference represents one available document and contains the link for retrieving the document (see below).
Search for SubmissionSets
A FHIR search for List returns a Bundle of List resources. Each List resource represents a submission set, which are documents for a patient that were uploaded together. The List resources refer to the DocumentReference resources, that then contain the link to the actual document.
Retrieve a document
In the DocumentReference resource, under content[0].attachment.url
, you find the link to the actual document.
{ "resourceType": "DocumentReference", ... "content": [ { "attachment": { "contentType": "text/xml", "language": "de-CH", "url": "http://test.ahdis.ch/mag-bfh/camel/xdsretrieve?uniqueId=92100cf9-e6e8-4bf8-a61c-2ee66e69eb2c&repositoryUniqueId=1.1.1.2.31", "size": 80461, "hash": "ZGU4YzRmNDM4ZjAzNmRmNDM0MDUyZWRjYjIzMTNjNDUzOTMyNzg1MQ==", "creation": "2020-06-29T11:58:00+00:00" }, "format": { "system": "urn:oid:1.3.6.1.4.1.19376.1.2.3", "code": "urn:ihe:pharm:pml:2013", "display": "Community Medication List" } } ], ... }
Using this link, you can fetch the document with a GET request: