Thanks Elijah Cotterrell for your time explaining how it works and how it can be achieved. It worked as you described. Thanks again for your time and answer it was brilliant.
Greetings.
- Log in to post comments
Thanks Elijah Cotterrell for your time explaining how it works and how it can be achieved. It worked as you described. Thanks again for your time and answer it was brilliant.
Greetings.
Hi Luis Angel,
I hope this message finds you well. I wanted to take a moment to express my sincere appreciation for your insightful post regarding Business Process (BPL) and Data Transformation Language (DTL) web pages' automatic refresh.
Your observation about the common frustration among both new and experienced users with regards to automatic page refreshes resonated deeply with me. It's an issue that has often led to frustration and lost work, affecting the overall experience of InterSystems technology users.
Your suggestion of implementing an autosave feature is not only practical but also a potential game-changer in addressing this problem. It's a solution that has the power to improve user experience and reduce the negative sentiment associated with such incidents. I believe it would greatly benefit both novice and veteran developers alike.
I've taken the liberty of visiting the idea you shared on the InterSystems portal (https://ideas.intersystems.com/ideas/DPI-I-452) and voted in favor of it. It's a fantastic initiative, and I encourage others to do the same.
Thank you for taking the initiative to propose this idea and for actively working towards enhancing the InterSystems technology ecosystem. Your contribution is valued, and I look forward to seeing how this idea evolves and potentially becomes a reality.
Once again, thank you for your great idea, and I'm excited about the positive impact it could have.
Best regards, and again, thanks Luis Angel.
One question, why old HealtShare versions did not have this automatic refresh for BPL and DTL?
We have used previous version of HealthShare, earlier than 2020, I think that it was 2017, and it did not have automatic refresh for DTLs and BPLs in the Studio.
Maybe I am wrong but I remember that previous version, could keep BPLs and DTLs without refreshing every X minutes. 🤔💭
Again thanks for your time reading and answering this question, that could be repeated, however I think it is needed. Thanks:
.png)
Thanks for your time and help.
I have tried you approach @Luis Angel Pérez Ramos and @Shanshan Yu and @Ashok Kumar T
, we have written the following code for our REST Service, following your advices and suggestions:
/// Ahora se accede mediante: /// https://host:port/api/studies?patientId=XXXX111111111111 /// Class Servicios.REST.DICOM.ConsultarEstudiosVNAv01r00 Extends (%CSP.REST, EnsLib.REST.Service, Ens.BusinessService)
{
Parameter ADAPTER = "EnsLib.HTTP.InboundAdapter";Parameter EnsServicePrefix = "|/api";
XData UrlMap
{
<Routes>
<Route Url="/:studies" Method="GET" Call="consultarEstudiosDatosPaciente"/>
</Routes>
}
/// un JSON con el listado de estudios que tiene el paciente + los datos demográficos del paciente /// (nombre, sexo, f.nacimiento, etc...)
Method consultarEstudiosDatosPaciente(pInput As%Stream.Object, Output pOutput As%Stream.Object, pStudies As%String) As%Status
{
$$$LOGALERT("Entra en consultarEstudiosDatosPaciente")
Set pOutput = ##class(%GlobalBinaryStream).%New()
set claseAux = ##class(%ZEN.Auxiliary.jsonProvider).%New()
$$$LOGWARNING("Antes de pPatientId")
set pPatientId = %request.Get("patientId")
$$$LOGINFO("pStudies: "_pStudies)
$$$LOGINFO("pPatientId: "_pPatientId)
set objetoEntrada = ##class(Mensajes.Request.DICOM.consultarEstudiosDatosPacienteVNARequest).%New()
set objetoEntrada.identificadorPaciente = pPatientId
set tSC = claseAux.%ConvertJSONToObject(.req,"Mensajes.Request.DICOM.consultarEstudiosDatosPacienteVNARequest",.objetoEntrada,1)
set tSC = ..SendRequestSync("EnrutadorConsultarEstudiosVNAv01r00",objetoEntrada,.objetoSalida)
set tSC = claseAux.%WriteJSONStreamFromObject(.pOutput,.objetoSalida,,,,"aeloqtuw")
Do:$$$ISOK(tSC) pOutput.SetAttribute("Content-Type","application/json")
do pOutput.SetAttribute("Access-Control-Allow-Origin","*")
do pOutput.SetAttribute("Access-Control-Allow-Credentials","true")
do pOutput.SetAttribute("Access-Control-Allow-Methods","GET")
do pOutput.SetAttribute("Access-Control-Allow-Headers","request,Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access-Control-Request-Headers")
Quit tSC
Quit$$$OK
}
}
Where the important part is that we have written the XData UrlMap Route Url as you have written:
XData UrlMap { <Routes> <Route Url="/:studies" Method="GET" Call="consultarEstudiosDatosPaciente"/> </Routes> }
In addition we have also added to get the patientId from %request as:
set pPatientId = %request.Get("patientId")
However, unfortunately, it only shows the logs before:
set pPatientId = %request.Get("patientId")
So then, if we observe the logs it shows us:
| Tipo | Hora | Texto | Id. |
|---|---|---|---|
| Info | 2023-10-11 06:58:03.070 | Closing TCP Connection Job | 3577763 |
| Info | 2023-10-11 06:58:03.069 | Disconnecting from 10102<-ABC:XYZ/SSL=CBA | 3577762 |
| Warning | 2023-10-11 06:58:03.067 | Antes de pPatientId | 3577761 |
| Alert | 2023-10-11 06:58:03.066 | Entra en consultarEstudiosDatosPaciente |
Why it fails when tries to retrieve the patientId from %request object via the Get method?
Besides, we have added "%CSP.REST" in the extends' class list, because w ehave read that %request variable is a special one inside %CSP.REST, as it states in the documentation below:
https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…
How could we really retrieve the patientId as query parameter?
How could we fix this issue?
Agan thanks for your time, help, and answers:
.png)
.png)
.png)
How could we debug and fix / improve this issue to get the Query Parameter as needed?
Thanks @Luis Angel Pérez Ramos for your reply and your help, thanks.
We have added it as:
Method OnAssociationReleased(pSourceConfigName As%String, pInput As EnsLib.DICOM.Notify.Released) As%Status
{
#dim tSC As%Status = $$$OK
#; The association between this process and the operation has been released, so we are now
#; not connected to the operationSet..CurrentState="OperationNotConnected"; Añadido el LOGINFO 13 10 2023 para depurar la llamada NULL espúrea que realiza este BP al Proceso Padre$$$LOGINFO("OnAssociationReleased antes de llamar al BP Padre, ..respuestaConsultaEstudios: "_..respuestaConsultaEstudios)
; Añadimos 11 10 2023Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",..respuestaConsultaEstudios,0)
Quit tSC
}
However it does only prints it once, and we do not understand why there is a NULL response being replied from this DICOM Process to the Parent Process:
.png)
Please; Could you help us with this issue?
Again, thank you for your time, help, replies, and for being supporting us.
In addittion, a sentence which is quite interesting:
"Collaboration is not just a buzzword; it's the very heart of what makes programming great. Helping others with their technical questions is not only the best way to learn but also a profound way to help ourselves." - Grace Hopper
This sentences shows us both points:
Learning through helping: The statement asserts that when you help others with their technical queries, you, in turn, gain knowledge and experience. Teaching or explaining something to someone else often requires a deeper understanding of the subject, which can enhance your own learning.
Helping is self-beneficial: Lastly, the sentence suggests that helping others is not just an altruistic act but also a means of self-improvement. By aiding others, you not only contribute to the community but also grow as a programmer and problem solver. It's a win-win situation where both parties benefit.
Thanks @Luis Angel Pérez Ramos for your tiem and help.
First we tried to declare the return type instead of being %Status, being Ens.Response; however it does not allow it:
.png)
Compilando clase Procesos.DICOM.ConsultarEstudiosMedianteFind
ERROR #5478: Error de firma de palabra clave en Procesos.DICOM.ConsultarEstudiosMedianteFind:Method:OnMessage, 'ReturnType' debe ser '%Library.Status' o su subclase
> ERROR #5030: Se produjo un error mientras se compilaba la clase Procesos.DICOM.ConsultarEstudiosMedianteFind
On the other hand, if we keep the return type as %Status, and we just declare an Output vairable pOutput as Ens.Response:
Method OnMessage(pSourceConfigName As%String, pInput As%Library.Persistent, Output pOutput As Ens.Response) As%StatusAnd we disable the line inside OnAssociationReleased() which makes the ..SendRequestAsync
Method OnAssociationReleased(pSourceConfigName As%String, pInput As EnsLib.DICOM.Notify.Released) As%Status
{
#dim tSC As%Status = $$$OK
#; The association between this process and the operation has been released, so we are now
#; not connected to the operationSet..CurrentState="OperationNotConnected"; Añadido el LOGINFO 13 10 2023 para depurar la llamada NULL espúrea que realiza este BP al Proceso Padre$$$LOGINFO("OnAssociationReleased antes de llamar al BP Padre, ..respuestaConsultaEstudios: "_..respuestaConsultaEstudios)
; Añadimos 11 10 2023;Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",..respuestaConsultaEstudios,0)Quit tSC
}And, we comment the Quit tSC inside the OnMessage() method, and we put a Quit pOutput as follows:
/// Messages received here are instances of EnsLib.DICOM.Document sent to this/// process by the service or operation config items. In this demo, the process is ever/// in one of two states, the Operation is connected or not.
Method OnMessage(pSourceConfigName As%String, pInput As%Library.Persistent, Output pOutput As Ens.Response) As%Status
{
#dim tSC As%Status = $$$OK#dim tMsgType As%String#dim tFindRequest As EnsLib.DICOM.Document
do {
#; If its a document sent from the serviceIf pSourceConfigName'=..OperationDuplexName {
set..respuestaConsultaEstudios = ##class(Mensajes.Response.DICOM.consultarEstudiosDatosPacienteVNAResponse).%New()
set..respuestaConsultaEstudios.patients = ##class(EsquemasDatos.DICOM.Patient).%New()
#; If the operation has not been connected yetIf..CurrentState="OperationNotConnected" {
#; We are in the process of establishing the connection to the operation,
#; Keep hold of the incoming documentSet..DocumentFromService=pInput
Set tSC=..EstablishAssociation(..OperationDuplexName)
} elseif..CurrentState="OperationConnected" {
#; We can forward the document to the operationSet tSC=..SendRequestAsync(..OperationDuplexName,..DocumentFromService,0)
}
} elseif pSourceConfigName=..OperationDuplexName {
#; We have received a document from the operationSet tMsgType=pInput.GetValueAt("CommandSet.CommandField",,.tSC)
If$$$ISERR(tSC) Quit
#; Should only EVER get a C-FIND-RSP$$$ASSERT(tMsgType="C-FIND-RSP")
#; TODO: Do Something With the Find Response(s)if pInput.GetValueAt("CommandSet.Status",,.tSC)=0
{
Set tSC=..ReleaseAssociation(..OperationDuplexName)
quit
}
else
{
; Escribimos 11 / 10 / 2023 para responder con los datos de cada estudio DICOM remitido por Sistema Destino set study = ##class(EsquemasDatos.DICOM.Study).%New()
set study.accessionNumber = pInput.GetValueAt("DataSet.AccessionNumber",,.tSC) if$$$ISERR(tSC) quitset study.description = pInput.GetValueAt("DataSet.StudyDescription",,.tSC) if$$$ISERR(tSC) quitset study.modality = pInput.GetValueAt("DataSet.ModalitiesInStudy",,.tSC) if$$$ISERR(tSC) quitset study.type = pInput.GetValueAt("DataSet.ImageType",,.tSC) if$$$ISERR(tSC) quitset study.data = pInput.GetValueAt("DataSet.StudyDate",,.tSC) if$$$ISERR(tSC) quitdo..respuestaConsultaEstudios.patients.studies.Insert(study)
; Añadimos 11 / 10 / 2023 para enviar la respuesta DICOM al Enturador Padre;Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",pInput,0);Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",study,0);Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",QueryRsp,0);Set tSC=..SendRequestSync("EnrutadorConsultarEstudiosVNAv01r00",QueryRsp,0)
}
}
} while (0)
set pOutput = ..respuestaConsultaEstudiosQuit pOutput
;Quit tSC
}
We observe at the Visual Trace, just only one response, which is the NULL one at step [17]:.png)
I still not knowing why it happens, why could it happen?
Could you help us please?
Thanks for your time and for your help, and even more I am really grateful for your explanations about this issue. Thank you.
"Collaboration and helping others with their programming questions isn't just an act of kindness; it's the most powerful way to learn and to help ourselves grow in this ever-evolving field." - Ada Lovelace
Thanks @Shanshan Yu
It worked fine.
The line which you have written does it take the Query Parameter as needed and as exepected:
set pPatientId = pInput.Attributes("Params","patientId",1)Thanks for your help.
Thanks @LuisAngel.PérezRamos.
Now we have changed the method's signature to add the pOutput; as:
Method OnMessage(pSourceConfigName As %String, pInput As %Library.Persistent, Output pOutput As Ens.Response) As %Status
Then, we have commented (disable) the SendRequestAsync inside OnAssociationReleased(), as:
;Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",..respuestaConsultaEstudios,0)
Finally, we have set our Property which holds the studies' list as follows, inside the OnMessage(), at the ending part of this method:
set pOutput = ..respuestaConsultaEstudios
Then, when we test it, it just shows us the "NULL", response without the one we do want:
.png)
Why if we disable the ..SendRequestAsync , our child DICOM Process does NOT reply to the Parent visual Process, with the desired Ens.Response?
Why it justs responds with a "NULL" Ens.Response?
Thanks again for your time, help, and for reading and writting to us.
Thanks @LuisAngel.PérezRamosfor your help.
How could we change our Parent Bussiness Process EnrutadorConsultarEstudiosVNAv01r00 when it calls its Child DICOM Process ConsultarEstudiosMedianteFind to add the variable by reference?
We currently <call> it as follows:
<scope xpos='335' ypos='1600' xend='335' yend='2150' >
<code name='C002 a Consulta DICOM' xpos='335' ypos='1700' >
<![CDATA[
set context.consultaDICOM = context.responseTarjetaC002ToFindDicom(context.responseTarjetaC002)]]>
</code>
<call name='ConsultarEstudiosFind' target='Procesos.DICOM.ConsultarEstudiosMedianteFind' async='0' xpos='335' ypos='1800' >
<request type='Ens.Request' >
<assign property="callrequest" value="context.consultaDICOM" action="set" />
</request>
<response type='Ens.Response' >
<assign property="context.respuestaDICOM" value="callresponse" action="set" />
</response>
</call>
<code name='LOG' xpos='335' ypos='1900' >
<![CDATA[
$$$LOGWARNING("Despues del call ConsultarEstudiosFind")
$$$LOGINFO(context.respuestaDICOM)
$$$LOGINFO(context.respuestaDICOM.patients.studies.GetAt(1).description)]]>
</code>
<faulthandlers>
<catchall xpos='335' ypos='2000' xend='200' yend='350' >
<code name='LOG ERROR' xpos='200' ypos='250' >
<![CDATA[
$$$LOGERROR($System.Status.GetErrorText(context.%LastError))]]>
</code>
</catchall>
</faulthandlers>
</scope>
Which visually is:
.png)
In addition our Child DICOM Process, has its method's signature as follows, where we have added the Output pOutput variable:
Method OnMessage(pSourceConfigName As %String, pInput As %Library.Persistent, Output pOutput As Ens.Response) As %Status
Thanks for your time, help, and replies.
Thank you @Luis Angel Pérez Ramos , for your time, and deep replies.
We have removed the pOutput in the Child DICOM Process.
In addition, as suggested, we have added inside OnMessage's ending the following:
; 16 10 2023 responder con el listado de estudios
set tSC = ..%responseSet(..respuestaConsultaEstudios)
$$$LOGALERT("tSC: "_tSC)
$$$LOGALERT($System.Status.GetErrorText(tSC))
Quit $$$OK
Being the complete Bussines Process ConsultarEstudiosMedianteFind's OnMessage() method as we can read here:
/// Messages received here are instances of EnsLib.DICOM.Document sent to this/// process by the service or operation config items. In this demo, the process is ever/// in one of two states, the Operation is connected or not.
Method OnMessage(pSourceConfigName As%String, pInput As%Library.Persistent) As%Status
{
#dim tSC As%Status = $$$OK#dim tMsgType As%String#dim tFindRequest As EnsLib.DICOM.Document
do {
#; If its a document sent from the serviceIf pSourceConfigName'=..OperationDuplexName {
set..respuestaConsultaEstudios = ##class(Mensajes.Response.DICOM.consultarEstudiosDatosPacienteVNAResponse).%New()
set..respuestaConsultaEstudios.patients = ##class(EsquemasDatos.DICOM.Patient).%New()
#; If the operation has not been connected yetIf..CurrentState="OperationNotConnected" {
#; We are in the process of establishing the connection to the operation,
#; Keep hold of the incoming documentSet..DocumentFromService=pInput
Set tSC=..EstablishAssociation(..OperationDuplexName)
} elseif..CurrentState="OperationConnected" {
#; We can forward the document to the operationSet tSC=..SendRequestAsync(..OperationDuplexName,..DocumentFromService,0)
}
} elseif pSourceConfigName=..OperationDuplexName {
#; We have received a document from the operationSet tMsgType=pInput.GetValueAt("CommandSet.CommandField",,.tSC)
If$$$ISERR(tSC) Quit
#; Should only EVER get a C-FIND-RSP$$$ASSERT(tMsgType="C-FIND-RSP")
#; TODO: Do Something With the Find Response(s)if pInput.GetValueAt("CommandSet.Status",,.tSC)=0
{
Set tSC=..ReleaseAssociation(..OperationDuplexName)
$$$LOGINFO("Antes quit Release")
quit$$$LOGINFO("Después quit Release")
}
else
{
; Escribimos 11 / 10 / 2023 para responder con los datos de cada estudio DICOM remitido por Sistema Destino set study = ##class(EsquemasDatos.DICOM.Study).%New()
set study.accessionNumber = pInput.GetValueAt("DataSet.AccessionNumber",,.tSC) if$$$ISERR(tSC) quitset study.description = pInput.GetValueAt("DataSet.StudyDescription",,.tSC) if$$$ISERR(tSC) quitset study.modality = pInput.GetValueAt("DataSet.ModalitiesInStudy",,.tSC) if$$$ISERR(tSC) quitset study.type = pInput.GetValueAt("DataSet.ImageType",,.tSC) if$$$ISERR(tSC) quitset study.data = pInput.GetValueAt("DataSet.StudyDate",,.tSC) if$$$ISERR(tSC) quitdo..respuestaConsultaEstudios.patients.studies.Insert(study)
; Añadimos 11 / 10 / 2023 para enviar la respuesta DICOM al Enturador Padre;Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",pInput,0);Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",study,0);Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",QueryRsp,0);Set tSC=..SendRequestSync("EnrutadorConsultarEstudiosVNAv01r00",QueryRsp,0)
}
}
} while (0)
;set pOutput = ..respuestaConsultaEstudios;Quit pOutput; 16 10 2023 responder con el listado de estudiosset tSC = ..%responseSet(..respuestaConsultaEstudios)
$$$LOGALERT("tSC: "_tSC)
$$$LOGALERT($System.Status.GetErrorText(tSC))
Quit$$$OK;$$$LOGINFO("Antes Quit tSC")Quit tSC
;$$$LOGINFO("Despues Quit tSC")
}After compiling, we observe the Visual Trace, where both yellow LOGALERTS are being printed various times:
.png)
Being the interesting part, before the NULL reply is being forwarded from the Child to the Parent, it continues happening, we do observe the NULL response:
.png)
Besides, we have desactivated the lines mentioned inside OnMessage()'s method, and we have added them inside OnAssociationReleased() as we can see below:
Method OnAssociationReleased(pSourceConfigName As%String, pInput As EnsLib.DICOM.Notify.Released) As%Status
{
#dim tSC As%Status = $$$OK
#; The association between this process and the operation has been released, so we are now
#; not connected to the operationSet..CurrentState="OperationNotConnected"; Añadido el LOGINFO 13 10 2023 para depurar la llamada NULL espúrea que realiza este BP al Proceso Padre$$$LOGINFO("OnAssociationReleased antes de llamar al BP Padre, ..respuestaConsultaEstudios: "_..respuestaConsultaEstudios)
; 16 10 2023 responder con el listado de estudiosset tSC = ..%responseSet(..respuestaConsultaEstudios)
$$$LOGALERT("tSC: "_tSC)
$$$LOGALERT($System.Status.GetErrorText(tSC))
Quit$$$OK; Añadimos 11 10 2023;Set tSC=..SendRequestAsync("EnrutadorConsultarEstudiosVNAv01r00",..respuestaConsultaEstudios,0)Quit tSC
}
After that change, we have tried again, and we see this new Visual Trace, where the important part, is that now, the LOGALERTS are only being displayed BEFORE the NULL response is being replied:
.png)
To summarize, even if we add the following lines to OnMessage() or to OnAssociationReleased():
; 16 10 2023 responder con el listado de estudios
set tSC = ..%responseSet(..respuestaConsultaEstudios)
$$$LOGALERT("tSC: "_tSC)
$$$LOGALERT($System.Status.GetErrorText(tSC))
Quit $$$OK
we still having that strange NULL response that we do not understand.
How could we further understand / debug this issue?
Thanks for your help and time and replies.
Thanks for your help @Luis Angel Pérez Ramos
We have faced the second option, to implement the OnResponse() method in the CHild DICOM Process.
We have written:
Method OnResponse(request As%Library.Persistent, ByRef response As%Library.Persistent, callrequest As%Library.Persistent, callresponse As%Library.Persistent, pCompletionKey As%String) As%Status
{
$$$LOGWARNING("OnResponse")
$$$LOGWARNING("request.%ClassName(): "_request.%ClassName())
;$$$LOGWARNING("response.%ClassName(): "_response.%ClassName())$$$LOGWARNING("callrequest.%ClassName(): "_callrequest.%ClassName())
$$$LOGWARNING("callresponse.%ClassName(): "_callresponse.%ClassName())
if (callresponse.%ClassName() = "consultarEstudiosDatosPacienteVNAResponse"){
set callresponse = ..respuestaConsultaEstudiosQuit$$$OK
}
Quit '$$$OK
}It outputs:
request.%ClassName(): Document
| callrequest.%ClassName(): Start |
| callresponse.%ClassName(): Ack |
It is being called after PrivateSession.Message.Ack.
However, we do not know how to handle it properly, to make it continue execution, untils it reaches the final Ens.Response and then just only send it if it is not NULL.
Currently the Visual Trace:
.png)
It shows:
[11] DICOM.Document the C-FIND request
[12] PrivateSession.Message.Start
[13] PrivateSession.Message.Ack
[14--17] The LOGS
[19]
| ERROR <Ens>ErrBPTerminated: Finalizando BP Procesos.DICOM.ConsultarEstudiosMedianteFind # debido a un error: ERROR #00: (sin descripción de error) > ERROR #00: (sin descripción de error) |
We do not know how to implement the OnResponse() properly because it forces us to reply with a %Status, and either if we respond $$$OK or '$$$OK , it halts execution, and replies with a NULL error, or with a NULL.
Furthermore, there are not examples of OnResponse() being implemented in the parent internal class: EnsLib.DICOM.Process
How could we continue beyond this point?
Thanks for your help.
Yes, you are right:
Source:
MSH|^~\&|ROCHE|350228|CARESUITE|1419|20231024083456||ORU^R01^ORU_R01|6677130896271347|P|2.5|||AL|AL
PID|1||ABC^^^HIS^PI^^^^ABC&&99CENTRO_SCS||ABC^ABC||ABC|M||||
PV1|1|U|UVI08|R||||||MIV^Medicina Intensiva^99SVC||||||||||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|300^Indice Lipemico^CAT_350228|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|300^Indice Lipemico^CAT_350228||8||0-14||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|2|NM|301^Indice Hemolitico^CAT_350228||1||0-40||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|3|NM|302^Indice Icterico^CAT_350228||1||0-30||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|4|NM|1001^Glucosa. (Sangre)^CAT_350228||112|mg / dl|70-110|H|||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|5|NM|1005^Urea. (Sangre)^CAT_350228||39.4|mg / dl|10-50||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|6|NM|1007^Creatinina. (Sangre)^CAT_350228||0.902|mg / dl|.67-1.17||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|7|NM|1195^Filtrado glomerular estimado (CKD-EPI)^CAT_350228||84.20710618|mL/min|60-999||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|8|NM|1006^?ido ?ico (Urato). (Sangre)^CAT_350228||3.33|mg / dl|3-7||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|9|NM|1019^Prote?as totales. (Sangre)^CAT_350228||6.69|g / dl|6.4-8.3||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|10|NM|1009^Sodio. (Sangre)^CAT_350228||141.6|meq/l|135-145||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|11|NM|1010^Potasio. (Sangre)^CAT_350228||3.87|meq/l|3.5-5.2||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|12|NM|1011^Cloro. (Sangre)^CAT_350228||104.6|meq/l|94-110||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|13|NM|1035^Fosfato. (Sangre)^CAT_350228||3.3|mg / dl|2.7-4.5||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|14|NM|1021^Creatinquinasa (CK). (Sangre)^CAT_350228||186|U/L|20-200||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|15|NM|1027^Troponina T sensible. (Sangre)^CAT_350228||657|ng/L|3-14|H|||F|||20231024065700^^20231024083343||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|16|NM|3191^Procalcitonina. (Sangre)^CAT_350228||2.46|ng/mL|.1|H|||F|||20231024065700^^20231024083343||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|17|NM|4021^Prote?a C Reactiva. (Sangre)^CAT_350228||5.07|mg / dl|0-.5|H|||F|||20231024065700^^20231024083343||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|18|ST|9100^HEMOGRAMA^CAT_350228||*||||||F|||20231024065700^^20231024065749||^^Validado por el sistema^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|19|NM|9111^Hematies^CAT_350228||4.16|10^6/?L|4.4-5.9|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|20|NM|9114^Hemoglobina^CAT_350228||11.4|g / dl|11-17.5||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|21|NM|8017^Hematocrito^CAT_350228||35.4|%|40-54|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|22|NM|8027^VCM^CAT_350228||85|fl|80-99||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|23|NM|8023^HCM^CAT_350228||27.5|pg|26-32||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|24|NM|8026^CHCM^CAT_350228||32.3|g / dl|32-36||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|25|NM|8029^RDW^CAT_350228||17|%|11.5-14.5|H|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|26|NM|8035^Plaquetas^CAT_350228||274|10^3/uL|120-400||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|27|NM|8038^Volumen plaquetar medio^CAT_350228||8.8|fl|7.2-11.1||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|28|NM|8044^Leucocitos^CAT_350228||9|10^3/uL|4-12||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|29|NM|8053^Neutrofilos %^CAT_350228||86.7|%|36-66|H|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|30|NM|8047^Linfocitos %^CAT_350228||6.4|%|24-44|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|31|NM|8028^Monocitos %^CAT_350228||4.8|%|5-11|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|32|NM|8057^Eosinofilos %^CAT_350228||1.9|%|0-7||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|33|NM|8031^Basofilos %^CAT_350228||0.2|%|0-1.5||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|34|NM|8325^FA Neutr?ilos^CAT_350228||7.8|10^3/?L|1.9-8||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|35|NM|9410^FA Linfocitos^CAT_350228||0.6|10^3/?L|.9-5.2|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|36|NM|8319^FA Monocitos^CAT_350228||0.4|10^3/?L|.16-1||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|37|NM|8245^FA Eosin?ilos^CAT_350228||0.2|10^3/?L|0-.8||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|38|NM|8219^FA Bas?ilos^CAT_350228||0|10^3/?L|0-.2||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|39|NM|8073^TP^CAT_350228||12|seg|9-14||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|40|NM|8076^I. QUICK^CAT_350228||92|%|80-130||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|41|NM|8082^Fibrinogeno^CAT_350228||709|mg/dl|200-400|H|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|42|NM|8085^Patron normal APTT^CAT_350228||31|seg|||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|43|NM|8088^APTT^CAT_350228||35.4|seg|25.6-38.4||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|44|ST|9101^Coagulacion^CAT_350228||*||||||F|||20231024065700^^20231024065749||^^Validado por el sistema^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|45|NM|9102^INR^CAT_350228||1.05||||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|46|NM|9170^Patron Normal TP^CAT_350228||11.4|seg|||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|47|NM|9191^APTT Ratio^CAT_350228||1.06||||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
OBX|48|ST|9950^Comentarios AP^CAT_350228||COMENTARIO||||||F|||20231024065700^^20231024065749||^^Validado por el sistema^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
NTE|1||Sospecha Diagn?tica (m?. 50 caracteres):.@@@Otras Pruebas:@@@Datos cl?icos de inter?:@@@Indicaciones-Protocolo AP:|O3K
The needed ORC + OBR + TQ1 + OBX output would be:
MSH|^~\&|ROCHE|350228|CARESUITE|1419|20231024083456||ORU^R01^ORU_R01|6677130896271347|P|2.5|||AL|AL
PID|1||ABC^^^HIS^PI^^^^ABC&&99CENTRO_SCS||ABC^ABC||ABC|M||||
PV1|1|U|UVI08|R||||||MIV^Medicina Intensiva^99SVC||||||||||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|16288^�ndice lipemia. (Sangre: suero)^CUP||8||0-14||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|16289^�ndice hem�lisis. (Sangre: suero)^CUP||1||0-40||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|16290^�ndice ictericia. (Sangre: suero)^CUP||1||0-30||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|00809^Glucosa. (Sangre)^CUP||112|mg / dl|70-110|H|||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01467^Urea. (Sangre)^CUP||39.4|mg / dl|10-50||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|00560^Creatinina. (Sangre)^CUP||0.902|mg / dl|.67-1.17||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|00723^Filtrado glomerular (GFR) estimado (MDRD 4)^CUP||84.20710618|mL/min|60-999||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|00061^�cido �rico (Urato). (Sangre)^CUP||3.33|mg / dl|3-7||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01269^Prote�nas totales. (Sangre)^CUP||6.69|g / dl|6.4-8.3||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01353^Sodio. (Sangre)^CUP||141.6|meq/l|135-145||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01204^Potasio. (Sangre)^CUP||3.87|meq/l|3.5-5.2||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|00420^Cloro. (Sangre)^CUP||104.6|meq/l|94-110||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|00761^Fosfato. (Sangre)^CUP||3.3|mg / dl|2.7-4.5||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|00562^Creatinquinasa (CK). (Sangre)^CUP||186|U/L|20-200||||F|||20231024065700^^20231024082454||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01458^Troponina T. (Sangre)^CUP||657|ng/L|3-14|H|||F|||20231024065700^^20231024083343||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01219^Procalcitonina. (Sangre)^CUP||2.46|ng/mL|.1|H|||F|||20231024065700^^20231024083343||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01263^Prote�na C Reactiva. (Sangre)^CUP||5.07|mg / dl|0-.5|H|||F|||20231024065700^^20231024083343||TFG^^Taiomara Fernandez^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|ST|01984^Hemograma. (Sangre)^CUP||*||||||F|||20231024065700^^20231024065749||^^Validado por el sistema^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01987^Hemat�es (RBC). (Sangre)^CUP||4.16|10^6/?L|4.4-5.9|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01989^Hemoglobina (HGB). (Sangre)^CUP||11.4|g / dl|11-17.5||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01988^Hematocrito (HCT). (Sangre)^CUP||35.4|%|40-54|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01994^Volumen corpuscular medio (VCM). (Sangre)^CUP||85|fl|80-99||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01986^Hemoglobina corpuscular media (HCM). (Sangre)^CUP||27.5|pg|26-32||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01985^Concentraci�n hemoglobina corpuscular media (CHCM) . (Sangre) ^CUP||32.3|g / dl|32-36||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01558^Amplitud distribuci�n del volumen de los eritrocitos (ADE o RDW). (Sangre)^CUP||17|%|11.5-14.5|H|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01992^Plaquetas (PLT). (Sangre)^CUP||274|10^3/uL|120-400||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|04515^Volumen plaquetar medio (VPM). (Sangre)^CUP||8.8|fl|7.2-11.1||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01990^Leucocitos (WBC). (Sangre)^CUP||9|10^3/uL|4-12||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02140^Neutr�filos absolutos (contaje autom�tico). (Sangre)^CUP||86.7|%|36-66|H|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02032^Linfocitos absolutos (contaje manual). (Sangre)^CUP||6.4|%|24-44|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02078^Monocitos absolutos (contaje autom�tico). (Sangre)^CUP||4.8|%|5-11|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01865^Eosin�filos absolutos (contaje autom�tico). (Sangre)^CUP||1.9|%|0-7||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01660^Bas�filos absolutos (contaje autom�tico). (Sangre)^CUP||0.2|%|0-1.5||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02140^Neutr�filos absolutos (contaje autom�tico). (Sangre)^CUP||7.8|10^3/?L|1.9-8||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02048^Linfocitos absolutos (contaje autom�tico). (Sangre)^CUP||0.6|10^3/?L|.9-5.2|L|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02078^Monocitos absolutos (contaje autom�tico). (Sangre)^CUP||0.4|10^3/?L|.16-1||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01865^Eosin�filos absolutos (contaje autom�tico). (Sangre)^CUP||0.2|10^3/?L|0-.8||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01660^Bas�filos absolutos (contaje autom�tico). (Sangre)^CUP||0|10^3/?L|0-.2||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02203^Tiempo de protrombina (TP) segundos. (Sangre: plasma)^CUP||12|seg|9-14||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02199^Actividad de Protrombina (%) (�ndice de Quick). (Sangre: plasma)^CUP||92|%|80-130||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|01951^Fibrin�geno Clauss. (Sangre: plasma)^CUP||709|mg/dl|200-400|H|||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|10683^CONTROL: Tiempo de tromboplastina parcial activada (TTPA)^CUP||31|seg|||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02433^Tiempo de tromboplastina parcial activada (TTPA). (Sangre)^CUP||35.4|seg|25.6-38.4||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|ST|01874^Estudio coagulaci�n. (Sangre)^CUP||*||||||F|||20231024065700^^20231024065749||^^Validado por el sistema^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|04510^INR (punci�n venosa). (Sangre: plasma)^CUP||1.05||||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|10221^CONTROL: Actividad tiempo protrombina (TP)^CUP||11.4|seg|||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|9^Hematolog�a^CUP^HEL^Hematolog�a Laboratorio^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|NM|02432^Tiempo de Tromboplastina Parcial Activada (TTPA) ratio. (Sangre)^CUP||1.06||||||F|||20231024065700^^20231024083400||~SYSValDaemon~^^System^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
ORC|SC|1024937532^SISTEMAEXTERNO|1024937532^LAB350228O3K||CM||||20231024083456|||maroaje^^^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS|||20231024065700||MIV^Medicina Intensiva^99SVC||||HOSPITALIZADOS^^^^^^^FI^^^^1||
OBR|1|1024937532^SISTEMAEXTERNO|1024937532^LAB035228O3K|8^Bioqu�mica^CUP^ACL^An�lisis Cl�nicos^CUP|||20231024065700|||||||20231024065700||MIV^Medicina Intensiva|||^^^|^^^^|^^^^^|20231024083405||.|CM|||||||Taiomara Fernandez^^20231024082454
TQ1|1||||||||R^Normal^HL70485
OBX|1|ST|16329^COMENTARIO: Atenci�n Primaria ^CUP||COMENTARIO||||||F|||20231024065700^^20231024065749||^^Validado por el sistema^^^^^^OMEGA^^^^PN^^^^^^^^^350228&&99CENTROS_SCS||
NTE|1||Sospecha Diagn?tica (m?. 50 caracteres):.@@@Otras Pruebas:@@@Datos cl?icos de inter?:@@@Indicaciones-Protocolo AP:|O3K
How could we achieve this, given the two variants of the transformation being exposed as our fist post? How could we express the needed behaviour throught Data Transformation Language?
Thanks for your time, reading, asnwering, and thinking about this.
Thanks @Ashok Kumar T for your help and time.
The updated variant:
set header = "{""alg"":""HS256""}"$$$LOGINFO("header: "_header)
set payload = "{""username"":"""_user_""",""requestID"":"""_pRequest.idPeticion_"""}"$$$LOGINFO("payload: "_payload)
set key = ##class(Util.TablasMaestras).getValorMaestra("PDF_LABORATORIO","secretKey_JWT")
$$$LOGINFO("key: "_key)
set base64header = $system.Encryption.Base64Encode(header)
$$$LOGALERT("base64header: "_base64header)
set base64payload = $system.Encryption.Base64Encode(payload)
$$$LOGALERT("base64payload: "_base64payload)
set base64decode = $system.Encryption.Base64Decode(base64payload)
$$$LOGALERT("base64decode: "_base64decode)
set base64payloadNUEVO = $system.Encryption.Base64Encode(base64decode)
$$$LOGALERT("base64payloadNUEVO: "_base64payloadNUEVO)
set base64decodeFUNCIONA = $system.Encryption.Base64Decode("eyJ1c2VybmFtZSI6Imhvc3QiLCJyZXF1ZXN0SUQiOiI5NDAzNjgyIn0")
$$$LOGALERT("base64decodeFUNCIONA: "_base64decodeFUNCIONA)
set base64FUNCIONA = $system.Encryption.Base64Encode(base64decodeFUNCIONA)
$$$LOGALERT("base64FUNCIONA: "_base64FUNCIONA)
set base64payloadQuitarIgualFinal = $PIECE(base64payload,"=",1)
$$$LOGALERT("base64payloadQuitarIgualFinal: "_base64payloadQuitarIgualFinal)
set unsignedToken = base64header_"."_base64payloadQuitarIgualFinal
$$$LOGINFO("unsignedToken: "_unsignedToken)
set signature = $SYSTEM.Encryption.HMACSHA(256, unsignedToken, key)
$$$LOGINFO("signature: "_signature)
set bas64signature = $system.Encryption.Base64Encode(signature)
$$$LOGINFO("bas64signature: "_bas64signature)
set token = unsignedToken_"."_bas64signature
$$$LOGWARNING("token: "_token)
Besides, comparing the one provided by the simulator which works, and the one which generates Ensemble; it is two thirds equals:
Header is exactly the same:
.png)
Payload is equal:
.png)
However the third one, the signature is not right.
We do not know why the lines which get the signature as a "HMAC-SHA256" are not ginving the proper and/or expected string:
set signature = $SYSTEM.Encryption.HMACSHA(256, unsignedToken, key)
$$$LOGINFO("signature: "_signature)
set bas64signature = $system.Encryption.Base64Encode(signature)
$$$LOGINFO("bas64signature: "_bas64signature)
set token = unsignedToken_"."_bas64signature
$$$LOGWARNING("token: "_token)We would need as the simulator has provided: "0LagsAfugccAlAiVyEQ2VbX8dODn0bCOixQROTAYG1I"
However Ensemble outputs as a signature this one: "cvj48UMDm3jtp9amY7rO1eyXmutC9wjMZzREmQOGIL0="
--
.png)
How could we understand and solve this?
We have also read carefully:
https://community.intersystems.com/post/how-use-base64-encrypt-string-e…
https://community.intersystems.com/post/hmac-authentication-problem
https://docs.intersystems.com/irisforhealthlatest/csp/documatic/%25CSP…
Could you help us, please?
Thanks @Ashok Kumar T for your thoughts and time, trying to help us.
We have tested it, as follows:
; 08/11/2023 We try to encode the signature with base64Urlset base64urlSignature = ##class(%OAuth2.Utils).Base64UrlEncode(signature)
$$$LOGASSERT("base64urlSignature: "_base64urlSignature)It shows the following output:
base64urlSignature: cvj48UMDm3jtp9amY7rO1eyXmutC9wjMZzREmQOGIL0
So, you are right, it looks like it removes the "=" character at the end, because when we use:
set bas64signature = $system.Encryption.Base64Encode(signature)
$$$LOGINFO("bas64signature: "_bas64signature)It shows us, the next outpout which contains "=" at the end:
bas64signature: cvj48UMDm3jtp9amY7rO1eyXmutC9wjMZzREmQOGIL0=
However it does not fix why the JWT's third part is different thant the one provided the simulator and tested with JWT.io
We think the difference is due to this line, the one which retrieves the signature:
set signature = $SYSTEM.Encryption.HMACSHA(256, unsignedToken, key)
$$$LOGINFO("signature: "_signature)How could we understand, deeply understand, and solve this need?
Thanks for your help, time, and effort.
Thanks @Shanshan Yu
for your help, time, and explanations.
Thanks @Ashok Kumar T , for your kind help.
We have developed it as follows:
ClassMethod HL7ToCustomEnsReq(request As EnsLib.HL7.Message) As Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest
{
#dim xml As%Stream.GlobalCharacterset tSC = ##class(HS.Gateway.HL7.HL7ToSDA3).GetSDA(request,.xml)
$$$ThrowOnError(tSC)
set reqObj = ##class(Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest).%New()
do reqObj.XMLImportSDAString(xml.Read())
set tSC = reqObj.%Save()
$$$ThrowOnError(tSC)
$$$LOGINFO("reqObj.MSH.MSH1.content: "_reqObj.MSH.MSH1.content)
quit reqObj
}
Where the Request is as follows:
Class Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest Extends (Ens.Request, HS.SDA3.QuickXML) [ ProcedureBlock ]
{
Parameter RESPONSECLASSNAME = "Mensajes.Response.Peticiones.Derivaciones.EnvioPeticiones.operacionResponse";Property MSH As hl7.MSH.CONTENT;Property NTE As list Of hl7.NTE.CONTENT;Property ORMO01PATIENT As hl7.ORMO01.PATIENT.CONTENT;Property ORMO01ORDER As list Of hl7.ORMO01.ORDER.CONTENT;Property SFT As list Of hl7.SFT.CONTENT;Property MSA As hl7.MSA.CONTENT;Property ERR As list Of hl7.ERR.CONTENT;And the Transformation invokes the HL7ToCustomEnsReq() functions like this:
Class Transformaciones.HL7.Peticiones.Derivacion.Mensaje.ORM01 Extends Ens.DataTransformDTL [ DependsOn = (EnsLib.HL7.Message, Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest) ]
{
Parameter IGNOREMISSINGSOURCE = 1;Parameter REPORTERRORS = 1;Parameter TREATEMPTYREPEATINGFIELDASNULL = 0;
XData DTL [ XMLNamespace = "http://www.intersystems.com/dtl" ]
{
<transform sourceClass='EnsLib.HL7.Message' targetClass='Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest' sourceDocType='2.5:ORM_O01' targetDocType='2.5:ORM_O01' create='new' language='objectscript' >
<assign value='##class(Util.FuncionesComunes).HL7ToCustomEnsReq(source)' property='target' action='set' />
</transform>
}
}
However we do see the $$$LOGINFO("reqObj.MSH.MSH1.content: "_reqObj.MSH.MSH1.content) totally empty:
| reqObj.MSH.MSH1.content: |
Being a warning issued as:
Could not generate EncounterNumber, skipping Encounter
.png)
What have we done wrong?
How could we understand, improve and fix it?
Is this the recommended way to convert an official HL7 Message, to a Ens.Request which is similar to a HL7 message but where each segment and field is an Ensemble class?
.png)
Thanks for your time, help and effort.
We have also read carefully: https://docs.intersystems.com/irisforhealthlatest/csp/documatic/%25CSP…
Again thanks @Ashok Kumar T for your help.
Thanks @Ashok Kumar T for your support and help.
How do we verify it? How do we get all the values whether the hl7 message is properly imported to the object after executing XMLImportSDAString() for all the properties?
We have written: xml.Read() to see which holds:
ClassMethod HL7ToCustomEnsReq(request As EnsLib.HL7.Message) As Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest
{
#dim xml As%Stream.GlobalCharacterset tSC = ##class(HS.Gateway.HL7.HL7ToSDA3).GetSDA(request,.xml)
$$$ThrowOnError(tSC)
$$$LOGALERT("xml.Read(): "_xml.Read())
do xml.Rewind()
set reqObj = ##class(Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest).%New()
do reqObj.XMLImportSDAString(xml.Read())
set tSC = reqObj.%Save()
$$$ThrowOnError(tSC)
$$$LOGINFO("reqObj.MSH.MSH1.content: "_reqObj.MSH.MSH1.content)
quit reqObj
}We do observe:
xml.Read():
<?xml version="1.0" encoding="UTF-16"?><Containerxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:isc="http://extension-functions.intersystems.com"><EventDescription>ORM_O01</EventDescription><SendingFacility>12010410</SendingFacility><Patient><PatientNumbers><PatientNumber><Number>ZZZ</Number><NumberType>MRN</NumberType><Organization><Code>ZZZ</Code></Organization></PatientNumber><PatientNumber><Number>BCE</Number><NumberType>BCE</NumberType><Organization><Code>MPI</Code></Organization><ISOAssigningAuthority>MPI</ISOAssigningAuthority></PatientNumber><PatientNumber><Number>ECX</Number><NumberType>ECX</NumberType><Organization><Code>TISR</Code></Organization><ISOAssigningAuthority>TISR</ISOAssigningAuthority></PatientNumber><PatientNumber><Organization><Code>DNI</Code></Organization><ISOAssigningAuthority>DNI</ISOAssigningAuthority></PatientNumber><PatientNumber><Number>ABC</Number><Organization><Code>ABC</Code></Organization></PatientNumber></PatientNumbers><Name><GivenName>AAA</GivenName><FamilyName>BBB</FamilyName><MiddleName>CCC</MiddleName></Name><BirthTime>1951-11-07T00:00:00Z</BirthTime><Gender><Code>F</Code></Gender><Addresses><Address><Street>C/; 87</Street><State><Code>28</Code></State><Zip><Code>35500</Code></Zip></Address></Addresses><ContactInfo><HomePhoneNumber>624508234</HomePhoneNumber></ContactInfo><IsDead>0</IsDead><EnteredAt><Code>12010410</Code></EnteredAt></Patient><OtherOrders><OtherOrder><FillerId>00000000</FillerId><Priority><Code>1</Code></Priority><EnteredBy><Code>32873705N</Code></EnteredBy><EnteringOrganization><Code>CON</Code><Organization><Code>12010410</Code></Organization></EnteringOrganization><OrderItem><Code>1</Code><Description>Hemograma</Description></OrderItem><Comments>
<![CDATA[Datos clínicos de interés%%%]]>
</Comments></OtherOrder></OtherOrders><Action>AddOrUpdate</Action></Container>How do we convert this SDA to the Ens.Request needed, which holds an structure like this:
Class Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest Extends (Ens.Request, HS.SDA3.QuickXML) [ ProcedureBlock ]
{
Parameter RESPONSECLASSNAME = "Mensajes.Response.Peticiones.Derivaciones.EnvioPeticiones.operacionResponse";Property MSH As hl7.MSH.CONTENT;Property NTE As list Of hl7.NTE.CONTENT;Property ORMO01PATIENT As hl7.ORMO01.PATIENT.CONTENT;Property ORMO01ORDER As list Of hl7.ORMO01.ORDER.CONTENT;Property SFT As list Of hl7.SFT.CONTENT;Property MSA As hl7.MSA.CONTENT;Property ERR As list Of hl7.ERR.CONTENT;How do we continue?
Thanks for your time, help, support and effort, and patience.
.png)
Thanks @Luis Angel Pérez Ramos
However we do not see <foreach> as an element to add using a RuleSet:
.png)
Is there any other way?
Thanks @Jeffrey.Drummthank you so much, Jeffrey Drumm, for your prompt and precise solution! Your explanation is thorough and greatly appreciated. Your time, assistance, and support mean a lot. The clarification about using the '*' shorthand and the correction regarding Document.DocTypeName versus Document.Name were particularly helpful. Thanks again for your invaluable contribution!
It worked as expected!
Thanks @Eduard Lebedyuk for your reply and example.
We have checked and your example does convert the "<" to "%lt;" .
However when at our integration we have followed your suggestions:
Property PACPROBLEMAS As %String(CONTENT = "ESCAPE", MAXLEN = "", XMLNAME = "PAC_PROBLEMAS");
So then the LOG SOAP shows:
[...]<PAC_PROBLEMAS>46807#278.01#OBESIDAD INFANTIL GRAVE ( Z-SCORE IMC >2,70 )#19/09/2019##N#S</PAC_PROBLEMAS>[...]
However when the Visual Trace shows this content, it spawns a CDATA which we do not understand how to remove:
<s01:PAC_PROBLEMAS><![CDATA[46807#278.01#OBESIDAD INFANTIL GRAVE ( Z-SCORE IMC >2,70 )#19/09/2019##N#S]]>
</s01:PAC_PROBLEMAS>
Is there any configuration, parameter, property or addon which we could employ inside the Web Service Client, the SOAP Operation, the Ens.Response Message, or the inner Data Structures where we could express that we need to erase <![CDATA[]]>?
How could we achieve this?
Thanks for your time, help and support. We are grateful for your reply.
Thanks @Yaron Munzand @Oliver Wilms
for your help because as you have stated the terminator that is being used is $CHAR(10), which is the line feed.
We have tested it and it worked correctly.
Again thanks for your help, time and replies they have helped us a lot.
Thanks @Anna Diak
for explaining and sharing your work.
Thanks @Shanshan Yu for your help.
Yes it does, the ESBCHUIMI's web service client class has it code to handle the SOAP header as follows:
Method actualizarEstadoSolicitudOrto(idsolicitud As%String(XMLNAME="id_solicitud",REQUIRED=1), codcentroentidad As%String(XMLNAME="cod_centro_entidad",REQUIRED=1), numexpedientetarjeta As%String(XMLNAME="num_expediente_tarjeta",REQUIRED=1), estado As%String(XMLPATTERN="\d{1,100}",REQUIRED=1), observaciones As%String(MAXLEN=4000), Output descripcion As%String(REQUIRED=1), usuario As%String(REQUIRED=1), password As%String(REQUIRED=1)) As%Numeric(XMLNAME="codigo") [ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ]
{
//credenciales en el headerset Credenciales = ##class(EsquemasDatos.ProgramasAsistenciales.DragoAE.tns.CredencialesType).%New()
set Credenciales.usuario = usuario
set Credenciales.password = password
do..HeadersOut.SetAt(Credenciales, "Credenciales")
Quit..WebMethod("actualizarEstadoSolicitudOrto","ActualizarEstadoSolicitudOrtoRequestElement").Invoke($this,"http://SIPRESatelites/SIPRESatelites.wsdl/actualizarEstadoSolicitudOrto",.idsolicitud,.codcentroentidad,.numexpedientetarjeta,.estado,.observaciones,.descripcion)
}
The challenge is that there is an Exception between what ESBSSCC's web service client outputs and what ESBCHUIMI's SERVICE class handles as inputs, because it fails at recognizing SOAP Header's Credenciales, and the execution flow breaks at line 7 at ESBCHUIMI's Service Class code here:
set request.usuario = ..HeadersIn.GetNext().usuario
We have also tried to call it as follows and it stills failling:
set request.usuario = ..HeadersIn.GetNext("Credenciales").usuario
Being the Error code as follows:
| Id.: | 320758306 |
| Tipo: | Error |
| Texto: | ERROR #6248: La respuesta de SOAP es un error de SOAP: faultcode=Server faultstring=Error del servidor de aplicaciones. faultactor= detail= <error xmlns="http://SCS.Servicios/SIPRESatelites"> <text>ERROR #5002: Error de cache: <INVALID OREF>zactualizarEstadoSolicitudOrto+7^Servicios.ProgramasAsistenciales.DragoAE.Ortoprotesis.SIPREtoDragoAEv01r00.1</text> </error> |
.png)
Could you help us please?
Thanks for your time.
Thanks for your help.
Thanks for your replies.
Thanks @Shanshan Yu it worked as expected.
We have changed both ESBSSCC's and ESBCHUIMI's NAMESPACE to be: http://SIPRESatelites/SIPRESatelites.wsdl
So then ESBSSCC's SOAP Header class is:
Class EsquemasDatos.ProgramasAsistenciales.DragoAE.tns.CredencialesType Extends (%Persistent, %SOAP.Header) [ ProcedureBlock ]
{
Parameter ELEMENTQUALIFIED = 1;Parameter NAMESPACE = "http://SIPRESatelites/SIPRESatelites.wsdl";// Parameter NAMESPACE = "http://SCS.Servicios/ProgramasAsistenciales";Parameter XMLFORMAT = "literal";Parameter XMLNAME = "Credenciales";Parameter XMLSEQUENCE = 1;Property usuario As%String(MAXLEN = "", XMLNAME = "usuario") [ Required ];Property password As%String(MAXLEN = "", XMLNAME = "password") [ Required ];And then, ESBCHUIMI's SOAP Header class as the same NAMESPACE:
Class EsquemasDatos.ProgramasAsistenciales.DragoAE.tns.CredencialesType Extends (%Persistent, %SOAP.Header) [ ProcedureBlock ]
{
Parameter ELEMENTQUALIFIED = 1;Parameter NAMESPACE = "http://SIPRESatelites/SIPRESatelites.wsdl";// Parameter NAMESPACE = "http://SCS.Servicios/SIPRESatelites";Parameter XMLNAME = "CredencialesType";Parameter XMLSEQUENCE = 1;Property usuario As%String(MAXLEN = "", XMLNAME = "usuario") [ Required ];Property password As%String(MAXLEN = "", XMLNAME = "password") [ Required ];To sum up, the solution was to writte the same NAMESPACE at both ESBSSCC's and ESBCHUIMI's SOAP Header classes:
Parameter NAMESPACE = "http://SIPRESatelites/SIPRESatelites.wsdl";
Again, thanks @Shanshan Yu for your help, time, and examples.
This discovery did not occur in 2023, it is older; however, I find it truly astonishing:
Elena García Armada, a Spanish industrial engineer, leads the CSIC team that has developed the world's first bionic exoskeleton for children with spinal muscular atrophy, a degenerative disease affecting around 2,000 minors in Spain.

Thanks for your help, time and explanations @Alexander Koblov
Thank you.
We have tried to solve this issue ourselves as follows:
We have changed the method's output parameter, from an Ens.Response to an %XML.String(MAXLEN=""):
Before:
Method ProcesarPeticion(MSH As hl7.MSH.CONTENT, NTE As hl7.NTE.CONTENT, ORMO01PATIENT As hl7.ORMO01.PATIENT.CONTENT(XMLNAME="ORM_O01.PATIENT"), ORMO01ORDER As hl7.ORMO01.ORDER.CONTENT(XMLNAME="ORM_O01.ORDER"), SFT As hl7.SFT.CONTENT, MSA As hl7.MSA.CONTENT, ERR As hl7.ERR.CONTENT) As Mensajes.Response.Peticiones.Derivaciones.EnvioPeticiones.operacionResponse [ Final, ProcedureBlock = 1, SoapAction = "http://FUERTEVENTURA.Servicios/Asentimientos/ProcesarACK", SoapBindingStyle = document, SoapBodyUse = literal, SoapMessageName = ACK, SoapRequestMessage = ORM_O01, WebMethod ]
After:
Method ProcesarPeticion(MSH As hl7.MSH.CONTENT, NTE As hl7.NTE.CONTENT, ORMO01PATIENT As hl7.ORMO01.PATIENT.CONTENT(XMLNAME="ORM_O01.PATIENT"), ORMO01ORDER As hl7.ORMO01.ORDER.CONTENT(XMLNAME="ORM_O01.ORDER"), SFT As hl7.SFT.CONTENT, MSA As hl7.MSA.CONTENT, ERR As hl7.ERR.CONTENT) As %XML.String(MAXLEN="") [ Final, ProcedureBlock = 1, SoapAction = "http://FUERTEVENTURA.Servicios/Asentimientos/ProcesarACK", SoapBindingStyle = document, SoapBodyUse = literal, SoapMessageName = ACK, SoapRequestMessage = ORM_O01, WebMethod ]
In addition we have converted the Ens.Response Message to XML with the following code:
;30/01/2024 convertir a XML para quitar las etiquetas SOAP sobrantes:
set writer=##class(%XML.Writer).%New()
set status=writer.OutputToString()
If $$$ISERR(status)Do $system.OBJ.DisplayError(status)
set status=writer.RootObject(response)
If $$$ISERR(status) Do $system.OBJ.DisplayError(status)set pResponse = writer.GetXMLString()
$$$LOGALERT("pResponse: "_pResponse);set inicioCabeceras = "<?xml version=""1.0"" encoding=""UTF-8""?><ACK xmlns=""urn:hl7-org:v2xml"">"
;$$$LOGINFO("inicioCabeceras: "_inicioCabeceras)
set sinInicio = $PIECE(pResponse,"<operacionResponse>",2)
$$$LOGINFO("sinInicio: "_sinInicio)
set sinInicioFinal = $PIECE(sinInicio,"</operacionResponse>",1)
$$$LOGINFO("sinInicioFinal: "_sinInicioFinal)
set finalCabeceras = "</ACK>"
$$$LOGINFO("finalCabeceras: "_finalCabeceras)
;set mensajeACKcompleto = inicioCabeceras_sinInicioFinal_finalCabeceras
set mensajeACKcompleto = sinInicioFinal
$$$LOGINFO("mensajeACKcompleto: "_mensajeACKcompleto);quit response
quit mensajeACKcompleto
Being the Service's full code as we show:
Class Servicios.Peticiones.Derivaciones.Gestionv01r00 Extends EnsLib.SOAP.Service [ ClassType = "", Inheritance = right, ProcedureBlock ]
{
Parameter ADAPTER = "EnsLib.SOAP.InboundAdapter";/// Nombre del WebService.Parameter SERVICENAME = "Gestion";/// Namespace SOAP para el Servicio WebParameter NAMESPACE = "urn:hl7-org:v2xml";/// Se utilizarán namespaces de clases referenciadas en WSDL.Parameter USECLASSNAMESPACES = 1;
Method ProcesarPeticion(MSH As hl7.MSH.CONTENT, NTE As hl7.NTE.CONTENT, ORMO01PATIENT As hl7.ORMO01.PATIENT.CONTENT(XMLNAME="ORM_O01.PATIENT"), ORMO01ORDER As hl7.ORMO01.ORDER.CONTENT(XMLNAME="ORM_O01.ORDER"), SFT As hl7.SFT.CONTENT, MSA As hl7.MSA.CONTENT, ERR As hl7.ERR.CONTENT) As%XML.String(MAXLEN="") [ Final, ProcedureBlock = 1, SoapAction = "http://FUERTEVENTURA.Servicios/Asentimientos/ProcesarACK", SoapBindingStyle = document, SoapBodyUse = literal, SoapMessageName = ACK, SoapRequestMessage = ORM_O01, WebMethod ]
{
set request = ##class(Mensajes.Request.Peticiones.Derivaciones.EnvioPeticiones.operacionRequest).%New()
set request.MSH = MSH
do request.NTE.Insert(NTE)
set request.ORMO01PATIENT = ORMO01PATIENT
do request.ORMO01ORDER.Insert(ORMO01ORDER)
set tSC = ..SendRequestSync("EnrutadorGestionDerivaciones",request,.response)
;30/01/2024 convertir a XML para quitar las etiquetas SOAP sobrantes:set writer=##class(%XML.Writer).%New()
set status=writer.OutputToString()
If$$$ISERR(status)
Do$system.OBJ.DisplayError(status)
set status=writer.RootObject(response)
If$$$ISERR(status) Do$system.OBJ.DisplayError(status)
set pResponse = writer.GetXMLString()
$$$LOGALERT("pResponse: "_pResponse)
;set inicioCabeceras = "<?xml version=""1.0"" encoding=""UTF-8""?><ACK xmlns=""urn:hl7-org:v2xml"">";$$$LOGINFO("inicioCabeceras: "_inicioCabeceras)set sinInicio = $PIECE(pResponse,"<operacionResponse>",2)
$$$LOGINFO("sinInicio: "_sinInicio)
set sinInicioFinal = $PIECE(sinInicio,"</operacionResponse>",1)
$$$LOGINFO("sinInicioFinal: "_sinInicioFinal)
set finalCabeceras = "</ACK>"$$$LOGINFO("finalCabeceras: "_finalCabeceras)
;set mensajeACKcompleto = inicioCabeceras_sinInicioFinal_finalCabecerasset mensajeACKcompleto = sinInicioFinal
$$$LOGINFO("mensajeACKcompleto: "_mensajeACKcompleto)
;quit responsequit mensajeACKcompleto
}
Method OnProcessInput(pInput As EnsLib.HL7.Message) As%Status
{
Quit..SendRequestAsync("EnrutadorGestionDerivaciones",pInput)
}
}
When we execute it, the $$$LOGINFO("mensajeACKcompleto: "_mensajeACKcompleto) does outputs the desired output:
<MSHxmlns:s01="urn:hl7-org:v2xml"><s01:MSH.1>|</s01:MSH.1><s01:MSH.2>
<![CDATA[^~\&]]>
</s01:MSH.2><s01:MSH.3><s01:HD.1>sistemaExterno</s01:HD.1></s01:MSH.3><s01:MSH.4><s01:HD.1>scs</s01:HD.1><s01:HD.2>350290</s01:HD.2></s01:MSH.4><s01:MSH.5><s01:HD.1>HGF</s01:HD.1></s01:MSH.5><s01:MSH.6><s01:HD.1>EXTHL7</s01:HD.1></s01:MSH.6><s01:MSH.7><s01:TS.1>20240130110908</s01:TS.1></s01:MSH.7><s01:MSH.9><s01:MSG.1>ACK</s01:MSG.1></s01:MSH.9><s01:MSH.10>70589905</s01:MSH.10><s01:MSH.11><s01:PT.1>P</s01:PT.1></s01:MSH.11><s01:MSH.12><s01:VID.1>2.5</s01:VID.1></s01:MSH.12><s01:MSH.13>1</s01:MSH.13><s01:MSH.15>AL</s01:MSH.15><s01:MSH.16>AL</s01:MSH.16><s01:MSH.18>ASCII</s01:MSH.18></MSH><MSAxmlns:s01="urn:hl7-org:v2xml"><s01:MSA.1>AA</s01:MSA.1></MSA>However, when we see the response being replied by the SOAP Service to the SoapUI it shows the extra XML tag "<ProcesarPeticionResult>":
<SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:s="http://www.w3.org/2001/XMLSchema"><SOAP-ENV:Body><ACKxmlns="urn:hl7-org:v2xml"><ProcesarPeticionResult><MSHxmlns:s01="urn:hl7-org:v2xml"><s01:MSH.1>|</s01:MSH.1><s01:MSH.2>^~\&</s01:MSH.2><s01:MSH.3><s01:HD.1>sistemaExterno</s01:HD.1></s01:MSH.3><s01:MSH.4><s01:HD.1>scs</s01:HD.1><s01:HD.2>350290</s01:HD.2></s01:MSH.4><s01:MSH.5><s01:HD.1>HGF</s01:HD.1></s01:MSH.5><s01:MSH.6><s01:HD.1>EXTHL7</s01:HD.1></s01:MSH.6><s01:MSH.7><s01:TS.1>20240130110908</s01:TS.1></s01:MSH.7><s01:MSH.9><s01:MSG.1>ACK</s01:MSG.1></s01:MSH.9><s01:MSH.10>70589905</s01:MSH.10><s01:MSH.11><s01:PT.1>P</s01:PT.1></s01:MSH.11><s01:MSH.12><s01:VID.1>2.5</s01:VID.1></s01:MSH.12><s01:MSH.13>1</s01:MSH.13><s01:MSH.15>AL</s01:MSH.15><s01:MSH.16>AL</s01:MSH.16><s01:MSH.18>ASCII</s01:MSH.18></MSH><MSAxmlns:s01="urn:hl7-org:v2xml"><s01:MSA.1>AA</s01:MSA.1></MSA></ProcesarPeticionResult></ACK></SOAP-ENV:Body></SOAP-ENV:Envelope>How could we achieve to remove the undesired "<ProcesarPeticionResult>" XML tag?
Thanks for your time.
Thanks for your help.
Thanks for your replies.
.png)
.png)
Could you please, help us? By pointing some documentation or linking to some example to address this need?
Thanks for your answers.
Thanks @Lucas.Cristofolinibecause it looks helpful.
However I do not know how is related the code which shows Gevorg, and the need to convert a XML string to a Ensemble Class.
Thanks for your time and help @Lucas.Cristofolini.
Thank you Maria Nesterenko, because your explanation is quite invaluable, profound, vivid, and above all, inspiring and instructive. I deeply appreciate it.