Question
· Nov 24, 2022

DICOM vers HL7

Nous avons un cas où un fournisseur peut nous envoyer plus d'informations dans le message DICOM plutôt que dans le message de résultat HL7. Théoriquement, il devrait être possible de prendre un DICOM et de le convertir en HL7, mais la question stupide est la suivante : quelqu'un l'a-t-il déjà fait ? Quelqu'un a-t-il un bon exemple de DTL qu'il a fait pour me montrer comment configurer les structures de message et la conversion ?
Merci
Scott Roth
Centre médical Wexner de l'Université d'État de l'Ohio

Discussion (1)1
Connectez-vous ou inscrivez-vous pour continuer

La réponse originale de @Mike Moulckers:

Scott,
L'astuce consiste à utiliser la syntaxe appropriée pour accéder aux différents champs du message DICOM. Dans l'exemple ci-dessous, nous extrayons des données du message DICOM pour les insérer dans un message de demande de planification simple produit en XML. La même syntaxe peut être utilisée en sens inverse, en écrivant de HL7 vers DICOM. Comme le message DICOM n'est pas entièrement défini dans Ensemble/HealthShare, la vue graphique de l'éditeur DTL n'est pas très jolie...

Class Test.Transform.DICOMToPatientSchedule Extends Ens.DataTransformDTL [ DependsOn = (EnsLib.DICOM.Document, Test.Msg.PatientScheduleReq) ]
{ 
   Parameter IGNOREMISSINGSOURCE = 1; 
   Parameter REPORTERRORS = 1; 
   Parameter TREATEMPTYREPEATINGFIELDASNULL = 0; 
   XData DTL [ XMLNamespace = "http://www.intersystems.com/dtl" ]
   {
      <transform sourceClass='EnsLib.DICOM.Document' targetClass='Test.Msg.PatientScheduleReq' targetDocType='2.3.1:ADT_A01' create='new' language='objectscript' >
         <assign value='source.GetValueAt("DataSet.PatientID")' property='target.PID' action='set' />
         <assign value='"DICOM"' property='target.MessageSource' action='set' />
         <assign value='source.GetValueAt("DataSet.PatientName")' property='target.PatientName' action='set' />
         <assign value='source.GetValueAt("DataSet.ScheduledProcedureStepSequence[1].ScheduledProcedureStepStartDate")' property='target.ExamDateTime' action='set' />
         <assign value='source.GetValueAt("DataSet.ScheduledProcedureStepSequence[1].ScheduledProcedureStepStartDate")' property='target.FileDate' action='set' />
         <assign value='source.GetValueAt("DataSet.ScheduledProcedureStepSequence[1].ScheduledProcedureStepDescription")' property='target.ExamType' action='set' />
         <assign value='source.GetValueAt("DataSet.AccessionNumber")' property='target.AccessionNumber' action='set' />
         <assign value='source.GetValueAt("DataSet.StudyInstanceUID")' property='target.VisitId' action='set' />
         <assign value='source.GetValueAt("DataSet.ScheduledProcedureStepSequence[1].ScheduledPerformingPhysicianName")' property='target.AttendingPhysician' action='set' />
      </transform>
   }
}