Écrit par

Question ED Coder · Jan 25, 2023

Supprimer un segment du message HL7

Salut,

J'ai un message ORU, qui a un segment EVN que je veux supprimer et envoyer le message à travers. J'ai essayé de cloner la demande comme ci-dessous :

s newreq = request.constructClone
s changereq = newreq.RemoveSegmentAt("EVN")
s request  = changereq

mais cela échoue.

Existe-t-il un moyen de supprimer un segment en toute sécurité et de le transmettre ? J'apprécierais votre aide à ce sujet.

Merci,

Eric

Comments

Irène Mykhailova · Fév 7, 2023

La réponse originale de @ED Coder  :

J'ai réussi à résoudre ce problème avec le code suivant.

//create a copy of the requests newREQ = request.%ConstructClone()
s ind = ""s EVNSeg = newREQ.FindSegment("EVN",.ind)
if EVNSeg '= ""
{
s res = newREQ.RemoveSegmentAt(ind)
}
s request = newREQ
Quit request
0
Sylvain Guilbaud · Août 23, 2023

Bonjour,

vous pouvez aussi utiliser une méthode "low-code" en utilisant le langage DTL avec l'action REMOVE

 

utils.HL7.transfo.removeSegment

Class utils.HL7.transfo.removeSegment Extends Ens.DataTransformDTL [ DependsOn = EnsLib.HL7.Message ]

{
Parameter IGNOREMISSINGSOURCE = 0;
Parameter REPORTERRORS = 1;
Parameter TREATEMPTYREPEATINGFIELDASNULL = 0;
XData DTL [ XMLNamespace = "http://www.intersystems.com/dtl" ]
{
<transform sourceClass='EnsLib.HL7.Message' targetClass='EnsLib.HL7.Message' sourceDocType='2.6:ADT_A01' targetDocType='2.6:ADT_A01' create='copy' language='objectscript' >
<assign value='' property='target.{EVN}' action='remove' />
<assign value='' property='target.{DG1()}' action='remove' />
</transform>
}
}

0