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 = changereqmais 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
Discussion (2)0
Comments
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
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>
}
}.png)
.png)