You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 47 Next »

General

This paragraph explains the general principles concerning the storage and consultation of a medication scheme.

When reading or updating the medication scheme, all this information should be displayed, validated and checked by the user in its entirety.

A medication scheme consists of

  • 1 transaction MS (medicationscheme), 
  • 0 or more transactions MSE (medicationschemeelement) and 
  • 0 or more transactions TS (treatmentsuspension)

 These transactions are named "a transaction set". This is reflected in the presence of the eHealth Interhub Webservices getTransactionSet and putTransactionSet.

Medication scheme

Read a medication scheme

The web service getTransactionList needs to be called in order to retrieve the id for the transaction MS.

A succesfull response will contain an <id S="LOCAL" SL="vitalinkuri"> whose value is needed as input for the next step in the reading of the medication scheme:

Example
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
 <SOAP-ENV:Header xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"/>
 <soap:Body>
  <ns3:GetTransactionListResponse xmlns="http://www.ehealth.fgov.be/hubservices/core/v3" xmlns:ns10="urn:be:fgov:ehealth:metahub:protocol:v2" xmlns:ns2="http://www.ehealth.fgov.be/standards/kmehr/schema/v1" xmlns:ns3="http://www.ehealth.fgov.be/hubservices/protocol/v3" xmlns:ns4="urn:be:fgov:ehealth:metahub:core:v2" xmlns:ns5="http://www.w3.org/2001/04/xmlenc#" xmlns:ns6="http://www.w3.org/2000/09/xmldsig#" xmlns:ns7="urn:be:fgov:ehealth:safe:internal:v3" xmlns:ns8="urn:be:fgov:ehealth:safe:common:decryptor:v3" xmlns:ns9="urn:be:fgov:ehealth:safe:common:v3">
   <response>
	...
   </response>
   <acknowledge>
		...
   </acknowledge>
   <kmehrheader>
    <folder>
     <patient>
		...
     </patient>
     <transaction>
      <id S="ID-KMEHR" SV="1.0">1</id>
      <id S="LOCAL" SL="vitalinkuri" SV="1.0">/subject/72071135503/medication-scheme</id>
      <cd S="CD-TRANSACTION" SV="1.6">medicationscheme</cd>
      <cd S="CD-HUBSERVICE" SV="1.0">GetTransactionSet</cd>
      	...
     </transaction>
    </folder>
   </kmehrheader>
  </ns3:GetTransactionListResponse>
 </soap:Body>
</soap:Envelope>


Reading the medication scheme is parsing the response of a getTransactionSet for a specific patient and with the id of the needed transaction MS.

Some Kmehr elements of the response have a meaning in the context of future manipulation of the medication scheme:

TransactionElementMeaningStore for later use?Extra information
MSid

S="ID-KMEHR"

This is a unique Kmehr-identifier for the transaction within the transactionset.

NO

S="LOCAL" SL="vitalinkuri"

This is the unique Vitalink-identifier for the MS transaction.

YESThis is the same value as the Vitalink-identier retrieved with getTransactionList.
MSE/TSid

S="ID-KMEHR"

This is a unique Kmehr-identifier for the transaction within the transactionset.

NOAlthough storage is not needed for the web service manipulation flow, it is off course needed to know the link between TS transactions and the MSE transactions they poin to.

S="LOCAL" SL="vitalinkuri"

This is the unique Vitalink-identifier for the MSE transaction.

YES

Update a medication scheme

Updating a medication scheme means doing putTransactionSet for a specific patient and with the id of the needed transaction MS.

In this set of transactions, MSE/TS transactions can be manipulated as follows:

Manipulation of

MS/TSE transaction

Description
createA new MS/TSE transaction is added to the set. Please refer to the paragraph below how created MS/TSE transactions are structured.
deleteThe MS/TSE transaction that needs to be deleted is not present anymore in the <kmehrmessage> of the putTransactionSetRequest.
updateThe MS/TSE transaction that needs to be updated is present in the <kmehrmessage> of the putTransactionSetRequest. Please refer to the paragraph below how updated MS/TSE transactions are structured.
preserveThe MS/TSE transaction that needs to be preserved is present in the <kmehrmessage> of the putTransactionSetRequest, and is an exact copy of the earlier read transaction.

The MS transaction itself must also be passed as input for the putTransactionSetRequest. 

ElementMeaningExtra information
authorThe author of the manipulation of the transaction set.It is good practice to provide the author information of the user of the application. However, the Vitalink gateway will generate this information based on the used session certificates.

iscomplete

This is not used in the Vitalink business flow.It is good practice to hard code this to "true".

isvalidated

This is not used in the Vitalink business flow.It is good practice to hard code this to "true".
versionThe version of the medication scheme on which this manipulation is based.

An application must pass here the value that was earlier read in the reading sequence.

The are several ways to retrieve the correct input value:

  1. The value of the element <version> in the element <latestupdate> for the transaction "medicationscheme" in the GetLatestUpdateResponse

    For Vitalink:

    GetLatestUpdateResponse returns error 489+406 if no Vitalink transactions at all were ever created.

    GetLatestUpdateResponse returns error 489+400 if only the medication scheme has never been created yet.

  2. The value of the element <version> in the transaction MS in the latest GetTransactionSetResponse

    For Vitalink, GetTransactionSetResponse returns no version if the medication scheme exists, but is empty.

Here an example of an updated MS transaction:

Example
<transaction>
	<id S="ID-KMEHR" SV="1.0">1</id>
	<cd S="CD-TRANSACTION" SV="1.4">medicationscheme</cd>
	<date>2018-02-09</date>
	<time>10:21:13.603+01:00</time>
	<author>
		<hcparty>
			<id S="ID-HCPARTY" SV="1.0">18334780</id>
			<id S="INSS" SV="1.0">82051234978</id>
			<cd S="CD-HCPARTY" SV="1.1">persphysician</cd>
			<firstname>Hannes</firstname>
			<familyname>De Clercq</familyname>
		</hcparty>
	</author>
	<iscomplete>true</iscomplete>
	<isvalidated>true</isvalidated>
	<version>41</version>
</transaction>

Delete a medication scheme

There is no explicit function to delete a medication scheme. A medication scheme is however implictly deleted by deleting all its MS/TSE transactions.

Create a medication scheme

There is no explicit function to create a medication scheme. A medication scheme is however implictly created by creating 1 or more MS/TSE transaction(s).

MSE/TS transaction

Read a MSE/TS transaction

Reading the MSE/TS transactions means parsing the correspondent transaction elements in the getTransactionSetResponse. 

Create a MSE/TS transaction

An MSE/TS transaction needs to be composed, compliant to the structure described in Medicationscheme Kmehr Structure, where the following elements have a specific meaning:

ElementMeaningExtra information
id S="ID-KMEHR"

A unique Kmehr-identifier that distinguishes this transaction from all others.

This does not need to be the same value from the orginally read one. However make sure the relations between TS and MSE transactions are not broken.
id S="LOCAL" SL="vitalinkuri"

This should not be present!

Absence of this id means for Vitalink that this is a newly created transaction.
dateDate of creationTypically, the creating application should choose "today".
timeTime of creationTypically, the creating application should choose "now".
authorThe author of the manipulation of the transaction set.It is good practice to provide the author information of the user of the application. However, the Vitalink gateway will generate this information based on the used session certificates.

iscomplete

This is not used in the Vitalink business flow.It is good practice to hard code this to "true".

isvalidated

This is not used in the Vitalink business flow.It is good practice to hard code this to "true".

Here an example of a created MS transaction:

Example
<transaction>
	<id S="ID-KMEHR" SV="1.0">6</id>
	<cd S="CD-TRANSACTION" SV="1.11">medicationschemeelement</cd>
	<date>2018-02-09</date>
	<time>10:21:13.603+01:00</time>
	<author>
		...
	</author>
	<iscomplete>true</iscomplete>
	<isvalidated>true</isvalidated>
	...
</transaction>

Update a MSE/TS transaction

An earlier MSE/TS transaction needs to be adapted, compliant to the structure described in Medicationscheme Kmehr Structure, where the following elements have a specific meaning:

ElementMeaningExtra information
id S="ID-KMEHR"

A unique Kmehr-identifier that distinguishes this transaction from all others.

This does not need to be the same value from the orginally read one. However make sure the relations between TS and MSE transactions are not broken.
id S="LOCAL" SL="vitalinkuri"

This should not be present!

Absence of this id means for Vitalink that this is a newly created transaction.
dateDate of creation

Typically, the creating application should choose "today".

timeTime of creation

Typically, the creating application should choose "now".


authorThe author of the manipulation of the transaction set.It is good practice to provide the author information of the user of the application. However, the Vitalink gateway will generate this information based on the used session certificates.

iscomplete

This is not used in the Vitalink business flow.It is good practice to hard code this to "true".

isvalidated

This is not used in the Vitalink business flow.It is good practice to hard code this to "true".

Here an example of an updated MS transaction:

Example
<transaction>
	<id S="ID-KMEHR" SV="1.0">6</id>
	<cd S="CD-TRANSACTION" SV="1.11">medicationschemeelement</cd>
	<date>2018-02-09</date>
	<time>10:21:13.603+01:00</time>
	<author>
		...
	</author>
	<iscomplete>true</iscomplete>
	<isvalidated>true</isvalidated>
	...
</transaction>

Delete a MSE/TS transaction

This can be achieved by not adding the transaction (that needs to be deleted)in the <kmehrmessage> of the putTransactionSetRequest.  


----------------------



A transaction MS must be composed.

Kmehr ElementInput value
id

1 id element should be provided:

  • S="ID-KMEHR"

For Vitalink, the id with S="vitalinkuri" is optional. However, if given, the SSIN part should match the id with S="ID-PATIENT" of the patient element in the kmehr folder.

cdS="CD-TRANSACTION" with value "medicationscheme"
date?
time?
author?
iscomplete

true VIM-147 - Getting issue details... STATUS

isvalidated

true VIM-147 - Getting issue details... STATUS



Create transaction MSE

Kmehr ElementInput value
id

1 id element should be provided:

  • S="ID-KMEHR"

An id with S="LOCAL" should not be provided. Absence of this id means for Vitalink that this is a new transaction.

cdS="CD-TRANSACTION" with value "medicationschemeelement"
date?
time?
author?
iscomplete

true VIM-147 - Getting issue details... STATUS

isvalidated

true VIM-147 - Getting issue details... STATUS

Create transaction TS

A transaction TS must be composed.

Kmehr ElementInput value
id

1 id element should be provided:

  • S="ID-KMEHR"

An id with S="LOCAL" should not be provided. Absence of this id means for Vitalink that this is a new transaction.

cdS="CD-TRANSACTION" with value "treatmentsuspension"
date?
time?
author?
iscomplete

true VIM-147 - Getting issue details... STATUS

isvalidated

true VIM-147 - Getting issue details... STATUS

Vitalink Element

Input value
lnkThe link to the corresponding transaction MSE, identified by its cd 'ID-KMEHR'.
medicationThe elements defining the medication information (Medicationscheme Kmehr Structure) should exactly match the medication information elements in the corresponding transaction MSE.

Update the medication scheme kmehrmessage

A list of URI’s will be submitted with the response message. In this list you’ll find the active medication of the complete medication scheme. So these are the unchanged, added and modified medications.

RSW/RSB annotation

In the RSW and RSB implementations, only the ID of the medication scheme as a whole will be returned.

Update transaction MS

A transaction MS must be composed.

Kmehr Element

Input value

id

2 id elements should be provided:

  • S="ID-KMEHR"
  • S="LOCAL", SL="vitalinkuri"

    RSW/RSB annotation

    In the RSW, this local_id is named “RSWID” and in RSB “RSBID”.

cdS="CD-TRANSACTION" with value "medicationscheme"
date?
time?
author?
iscomplete

true VIM-147 - Vragenlijst Kmehr OPEN

isvalidated

true VIM-147 - Vragenlijst Kmehr OPEN


Vitalink Element

Input value

versionThe version of the transaction MS in the last succesfull GetTransactionSet should be passed. Vitalink will check this version to see if the update is based on the latest transaction MS.

Update transaction MSE

A transaction MS must be composed.

Kmehr Element

Input value

id

2 id elements should be provided:

  • S="ID-KMEHR"
  • S="LOCAL", SL="vitalinkuri"

    RSW/RSB annotation

    In the RSW, this local_id is named “RSWID” and in RSB “RSBID”.

cdS="CD-TRANSACTION" with value "medicationscheme"
date?
time?
author?
iscomplete

true VIM-147 - Vragenlijst Kmehr OPEN

isvalidated

true VIM-147 - Vragenlijst Kmehr OPEN

Create transaction MSE

Create transaction TS

Delete transaction MS

A transaction MS must be composed.

Kmehr Element

Input value

id

2 id elements should be provided:

  • S="ID-KMEHR"
  • S="LOCAL", SL="vitalinkuri"

    RSW/RSB annotation

    In the RSW, this local_id is named “RSWID” and in RSB “RSBID”.

cdS="CD-TRANSACTION" with value "medicationscheme"
date?
time?
author?
iscomplete

true VIM-147 - Vragenlijst Kmehr OPEN

isvalidated

true VIM-147 - Vragenlijst Kmehr OPEN

Delete transaction TS


  • No labels