Good morning, 🙂
I would like to ask a question, which has to do with how to manage %GlobalCharacterStream representing JSONS.
Thank you for reading this question, thank you for your help, and thank you for your time and attention.
Specifically, in a certain Process, we were querying 2 Operations, whose response we were converting to a Property called "informesAutorizadosRangoFechas" (reportsAuthorizedInRangeDates) which is %GlobalCharacterStream whose content is a JSON with the same structure.
That is, at a visual level, a concrete example is the following:
Response from Operation 1: the content of the Property informesAutorizadosRangoFechas (reportsAuthorizedInRangeDates) is:
{
"resourceType": "Bundle",
"type": "searchset",
"entry": [
{
"resource": [
{
"resourceType": "ServiceRequest",
"contained": [
{
"resourceType": "Practitioner",
"id": "id",
"name": [
{
"text": "text",
"family": " ",
"given": [
"given"
],
"extension": [
{
"url": "url",
"valueString": ""
},
{
"url": "url",
"valueString": ""
}
]
}
]
},
{
"resourceType": "Patient",
"id": "id",
"name": [
{
"text": "text",
"family": "family",
"given": [
"given"
],
"extension": [
{
"url": "url",
"valueString": "valueString"
},
{
"url": "url",
"valueString": "valueString"
}
]
}
],
"identifier": [
{
"type": [
{
"text": "text",
"value": "value"
},
{
"text": "MR",
"value": "value"
},
{
"text": "JHN",
"value": "value"
},
{
"text": "NIIP",
"value": ""
},
{
"text": "PRN",
"value": "value"
}
]
}
],
"telecom": [
{
"value": "928000001"
}
],
"gender": "male",
"birthDate": "birthDate"
},
{
"resourceType": "QuestionnaireResponse",
"id": "cuestionario1",
"identifier": [
{
"value": "cuestionario 1"
}
],
"item": [
{
"definition": "pregunta 1",
"text": "Zona",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 2",
"text": "Alertas",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 3",
"text": "Tipo Estudio",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 4",
"text": "Abierta",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 5",
"text": "Anestesia",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 6",
"text": "Contraste",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 7",
"text": "Oxígeno",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 8",
"text": "Sospecha Diagnóstica",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 9",
"text": "Datos Clínicos",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 10",
"text": "Observaciones",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 11",
"text": "Solo RADIOLOGO (para TER)",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 12",
"text": "Solo RADIOLOGO (para administ)",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 13",
"text": "Circunstancia",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 14",
"text": "Forma de acceso",
"answer": [
{
"valueString": "answer"
}
]
}
]
}
],
"extension": [
{
"url": "AMBITO",
"valueInteger": "CON"
},
{
"url": "IMAGEN",
"valueInteger": "0"
},
{
"url": "INFORME",
"valueInteger": "1"
},
{
"url": "CENTROSOLICITANTE",
"valueCoding": {
"code": "0535001830",
"display": "0535001830"
}
}
],
"identifier": [
{
"type": [
{
"text": "NORDEN",
"value": "NORDEN"
},
{
"text": "IDPETICION",
"value": "IDPETICION"
},
{
"text": "EPISODIO",
"value": "EPISODIO"
}
]
}
],
"status": "AUTORIZADA",
"code": {
"coding": [
{
"code": "D.56"
}
],
"text": "RM ABDOMEN SIN Y CON CONTRASTE"
},
"subject": {
"reference": "#reference"
},
"occurrenceDateTime": "2023-10-10",
"authoredOn": "2023-10-10 00:00:00.0",
"requester": {
"reference": "#reference"
},
"locationCode": [
{
"text": "text"
}
],
"supportingInfo": [
{
"reference": "#reference"
}
],
"note": ""
}
]
}
]
}
Operation 2 Response: the content of the Property informesAutorizadosRangoFechas is:
{
"resourceType": "Bundle",
"type": "searchset",
"entry": [
{
"resource": [
{
"resourceType": "ServiceRequest",
"contained": [
{
"resourceType": "Practitioner",
"id": "id",
"name": [
{
"text": "text",
"family": "family",
"given": [
"given"
],
"extension": [
{
"url": "first-surname",
"valueString": "valueString"
},
{
"url": "second-surname",
"valueString": "valueString"
}
]
}
]
},
{
"resourceType": "Patient",
"id": "id",
"name": [
{
"text": "text",
"family": "family",
"given": [
"given"
],
"extension": [
{
"url": "first-surname",
"valueString": "first-surname"
},
{
"url": "second-surname",
"valueString": "second-surname"
}
]
}
],
"identifier": [
{
"type": [
{
"text": "NNESP",
"value": "value"
},
{
"text": "MR",
"value": "value"
},
{
"text": "JHN",
"value": "value"
},
{
"text": "NIIP",
"value": "value"
}
]
}
],
"telecom": [
{
"value": "629893558"
}
],
"gender": "male",
"birthDate": "birthDate"
},
{
"resourceType": "QuestionnaireResponse",
"id": "cuestionario1",
"identifier": [
{
"value": "cuestionario 1"
}
],
"item": [
{
"definition": "pregunta 1",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 2",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 3",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 4",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 5",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 6",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 7",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 8",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 9",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 10",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 11",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 12",
"text": "text",
"answer": [
{
"valueString": "A4.05 - Estudio básico"
}
]
},
{
"definition": "pregunta 13",
"text": "text",
"answer": [
{
"valueString": "Derecha"
}
]
},
{
"definition": "pregunta 14",
"text": "text",
"answer": [
{
"valueString": "Procedimiento diagnóstico de control"
}
]
},
{
"definition": "pregunta 15",
"text": "text",
"answer": [
{
"valueString": ""
}
]
},
{
"definition": "pregunta 16",
"text": "text",
"answer": [
{
"valueString": ""
}
]
},
{
"definition": "pregunta 17",
"text": "text",
"answer": [
{
"valueString": ""
}
]
},
{
"definition": "pregunta 18",
"text": "text",
"answer": [
{
"valueString": ""
}
]
}
]
}
],
"extension": [
{
"url": "AMBITO",
"valueInteger": "valueInteger"
},
{
"url": "IMAGEN",
"valueInteger": "0"
},
{
"url": "INFORME",
"valueInteger": "0"
},
{
"url": "CENTROSOLICITANTE",
"valueCoding": {
"code": "0535001838",
"display": "display"
}
}
],
"identifier": [
{
"type": [
{
"text": "NORDEN",
"value": "value"
},
{
"text": "IDPETICION",
"value": "value"
}
]
}
],
"status": "Incidencia Finalizada",
"code": {
"coding": [
{
"code": "code"
}
],
"text": "RM DE MUÑECA SIN/CON CONTRASTE"
},
"subject": {
"reference": "#reference"
},
"occurrenceDateTime": "2022-06-27",
"authoredOn": "",
"requester": {
"reference": "#reference"
},
"locationCode": [
{
"text": "text"
}
],
"supportingInfo": [
{
"reference": "#reference"
}
],
"note": "note"
}
]
}
]
}
The need is the following: to join to the response of Operation 1, the Response of Operation 2, in such a way that the values of the “resource” of the response 2 are below the values of the “resource” of the response 1; that is to say, that the resulting JSON structure is valid.
As a concrete example I have manually performed the binding that would be the needed one:
{
"resourceType": "Bundle",
"type": "searchset",
"entry": [
{
"resource": [
{
"resourceType": "ServiceRequest",
"contained": [
{
"resourceType": "Practitioner",
"id": "id",
"name": [
{
"text": "text",
"family": " ",
"given": [
"given"
],
"extension": [
{
"url": "url",
"valueString": ""
},
{
"url": "url",
"valueString": ""
}
]
}
]
},
{
"resourceType": "Patient",
"id": "id",
"name": [
{
"text": "text",
"family": "family",
"given": [
"given"
],
"extension": [
{
"url": "url",
"valueString": "valueString"
},
{
"url": "url",
"valueString": "valueString"
}
]
}
],
"identifier": [
{
"type": [
{
"text": "text",
"value": "value"
},
{
"text": "MR",
"value": "value"
},
{
"text": "JHN",
"value": "value"
},
{
"text": "NIIP",
"value": ""
},
{
"text": "PRN",
"value": "value"
}
]
}
],
"telecom": [
{
"value": "928000001"
}
],
"gender": "male",
"birthDate": "birthDate"
},
{
"resourceType": "QuestionnaireResponse",
"id": "cuestionario1",
"identifier": [
{
"value": "cuestionario 1"
}
],
"item": [
{
"definition": "pregunta 1",
"text": "Zona",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 2",
"text": "Alertas",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 3",
"text": "Tipo Estudio",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 4",
"text": "Abierta",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 5",
"text": "Anestesia",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 6",
"text": "Contraste",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 7",
"text": "Oxígeno",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 8",
"text": "Sospecha Diagnóstica",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 9",
"text": "Datos Clínicos",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 10",
"text": "Observaciones",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 11",
"text": "Solo RADIOLOGO (para TER)",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 12",
"text": "Solo RADIOLOGO (para administ)",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 13",
"text": "Circunstancia",
"answer": [
{
"valueString": "answer"
}
]
},
{
"definition": "pregunta 14",
"text": "Forma de acceso",
"answer": [
{
"valueString": "answer"
}
]
}
]
}
],
"extension": [
{
"url": "AMBITO",
"valueInteger": "CON"
},
{
"url": "IMAGEN",
"valueInteger": "0"
},
{
"url": "INFORME",
"valueInteger": "1"
},
{
"url": "CENTROSOLICITANTE",
"valueCoding": {
"code": "0535001830",
"display": "0535001830"
}
}
],
"identifier": [
{
"type": [
{
"text": "NORDEN",
"value": "NORDEN"
},
{
"text": "IDPETICION",
"value": "IDPETICION"
},
{
"text": "EPISODIO",
"value": "EPISODIO"
}
]
}
],
"status": "AUTORIZADA",
"code": {
"coding": [
{
"code": "D.56"
}
],
"text": "RM ABDOMEN SIN Y CON CONTRASTE"
},
"subject": {
"reference": "#reference"
},
"occurrenceDateTime": "2023-10-10",
"authoredOn": "2023-10-10 00:00:00.0",
"requester": {
"reference": "#reference"
},
"locationCode": [
{
"text": "text"
}
],
"supportingInfo": [
{
"reference": "#reference"
}
],
"note": ""
},
{
"resourceType": "ServiceRequest",
"contained": [
{
"resourceType": "Practitioner",
"id": "id",
"name": [
{
"text": "text",
"family": "family",
"given": [
"given"
],
"extension": [
{
"url": "first-surname",
"valueString": "valueString"
},
{
"url": "second-surname",
"valueString": "valueString"
}
]
}
]
},
{
"resourceType": "Patient",
"id": "id",
"name": [
{
"text": "text",
"family": "family",
"given": [
"given"
],
"extension": [
{
"url": "first-surname",
"valueString": "first-surname"
},
{
"url": "second-surname",
"valueString": "second-surname"
}
]
}
],
"identifier": [
{
"type": [
{
"text": "NNESP",
"value": "value"
},
{
"text": "MR",
"value": "value"
},
{
"text": "JHN",
"value": "value"
},
{
"text": "NIIP",
"value": "value"
}
]
}
],
"telecom": [
{
"value": "629893558"
}
],
"gender": "male",
"birthDate": "birthDate"
},
{
"resourceType": "QuestionnaireResponse",
"id": "cuestionario1",
"identifier": [
{
"value": "cuestionario 1"
}
],
"item": [
{
"definition": "pregunta 1",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 2",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 3",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 4",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 5",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 6",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 7",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 8",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 9",
"text": "text",
"answer": [
{
"valueString": "No"
}
]
},
{
"definition": "pregunta 10",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 11",
"text": "text",
"answer": [
{
"valueString": "NO"
}
]
},
{
"definition": "pregunta 12",
"text": "text",
"answer": [
{
"valueString": "A4.05 - Estudio básico"
}
]
},
{
"definition": "pregunta 13",
"text": "text",
"answer": [
{
"valueString": "Derecha"
}
]
},
{
"definition": "pregunta 14",
"text": "text",
"answer": [
{
"valueString": "Procedimiento diagnóstico de control"
}
]
},
{
"definition": "pregunta 15",
"text": "text",
"answer": [
{
"valueString": ""
}
]
},
{
"definition": "pregunta 16",
"text": "text",
"answer": [
{
"valueString": ""
}
]
},
{
"definition": "pregunta 17",
"text": "text",
"answer": [
{
"valueString": ""
}
]
},
{
"definition": "pregunta 18",
"text": "text",
"answer": [
{
"valueString": ""
}
]
}
]
}
],
"extension": [
{
"url": "AMBITO",
"valueInteger": "valueInteger"
},
{
"url": "IMAGEN",
"valueInteger": "0"
},
{
"url": "INFORME",
"valueInteger": "0"
},
{
"url": "CENTROSOLICITANTE",
"valueCoding": {
"code": "0535001838",
"display": "display"
}
}
],
"identifier": [
{
"type": [
{
"text": "NORDEN",
"value": "value"
},
{
"text": "IDPETICION",
"value": "value"
}
]
}
],
"status": "Incidencia Finalizada",
"code": {
"coding": [
{
"code": "code"
}
],
"text": "RM DE MUÑECA SIN/CON CONTRASTE"
},
"subject": {
"reference": "#reference"
},
"occurrenceDateTime": "2022-06-27",
"authoredOn": "",
"requester": {
"reference": "#reference"
},
"locationCode": [
{
"text": "text"
}
],
"supportingInfo": [
{
"reference": "#reference"
}
],
"note": "note"
}
]
}
]
}
Please, how would you recommend, suggest, structure this logic? I ask because perhaps there is a standard, solid, robust, recommended, suggested and advisable way to do this type of logic.
Thank you for reading this question, thank you for your help, and thank you for your time and attention.
🙂
Thanks.